Ambulatory medical device update without interruption of therapy delivery

ABSTRACT

Systems and methods are disclosed herein for updating an application controlling an ambulatory medical device such that application updates can be identified, downloaded and installed without interrupting therapy provided by the ambulatory medical device to a subject. The ambulatory medical device may receive an indication that an update to an application executing on the ambulatory insulin pump is available, establish a communication connection to a host computing system configured to host the application update, and download the application update. The disclosed systems and methods can determine an execution time of an installation and install the downloaded application update without interrupting therapy provided by the ambulatory medical device to the subject.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

This invention was made with U.S. Government support under Contract No.DK120234, awarded by the National Institutes of Health. The Governmenthas certain rights in the invention.

INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

Any and all applications for which a foreign or domestic priority claimis identified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 37 CFR 1.57. Inaddition, this application hereby incorporates by reference in theirentirety for all purposes and makes a part of this specification thefollowing applications filed on the same date as this application:

US application Ser. No. Title Filing Date 17/062,361 BLOOD GLUCOSECONTROL SYSTEM Oct. 2, 2020 SWITCHING WITHOUT INTERRUPTION OF THERAPYDELIVERY 17/062,377 SWITCHING BLOOD GLUCOSE CONTROL Oct. 2, 2020 SYSTEMEXECUTION WITHOUT INTERRUPTION OF THERAPY DELIVERY 17/062,353 AMBULATORYMEDICAMENT DEVICE WITH Oct. 2, 2020 ALARM STATUS INDICATION 17/062,426AMBULATORY MEDICAMENT DEVICE WITH Oct. 2, 2020 AUTOMATIC RESUMPTION OFMEDICAMENT DELIVERY 17/062,167 AMBULATORY MEDICAMENT DEVICE Oct. 2, 2020ALARM SYSTEM 17/062,436 BLOOD GLUCOSE CONTROL SYSTEM WITH Oct. 2, 2020MEDICAMENT BOLUS RECOMMENDATION 17/062,319 AMBULATORY MEDICAL DEVICEDATA Oct. 2, 2020 ACCESS MANAGEMENT VIA WIRELESS WIDE AREA NETWORK17/062 415 AMBULATORY MEDICAL DEVICE WITH Oct. 2, 2020 MALFUNCTION ALERTPRIORITIZATION 17/062,399 AMBULATORY MEDICAMENT DEVICE WITH Oct. 2, 2020SECURITY OVERRIDE PASSCODE 17/062,217 AMBULATORY MEDICAL DEVICE WITHOct. 2, 2020 THERAPY DATA SHARING VIA WIRELESS WIDE AREA NETWORK17/062,280 AMBULATORY MEDICAMENT DEVICE WITH Oct. 2, 2020 GESTURE-BASEDCONTROL OF MEDICAMENT DELIVERY

BACKGROUND Technical Field

This disclosure relates to blood glucose control systems and toambulatory medical devices that provide therapy to a subject.

Description of Related Art

Sustained delivery, pump driven medicament injection devices generallyinclude a delivery cannula mounted in a subcutaneous manner through theskin of the subject at an infusion site. The pump draws medicine from areservoir and delivers it to the subject via the cannula. The injectiondevice typically includes a channel that transmits a medicament from aninlet port to the delivery cannula which results in delivery to thesubcutaneous tissue layer where the delivery cannula terminates. Someinfusion devices are configured to deliver one medicament to a subjectwhile others are configured to deliver multiple medicaments to asubject.

SUMMARY

Blood glucose control systems and ambulatory medical devices thatprovide therapy to a subject, such as blood glucose control, aredisclosed. Disclosed systems and devices can implement one or morefeatures that improve the user experience, such as software updatetechniques that avoid interrupting delivery of therapy, gesture-basedcontrol of therapy delivery, automatic resumption of therapy after auser-initiated pause, improved alarm management, display of autonomouslycalculated dosing recommendations, wide area network connectivity, andsecurity features.

BRIEF DESCRIPTION OF THE DRAWINGS

The systems, methods, and devices of this disclosure each have severalinnovative aspects, no single one of which is solely responsible for theall of the desirable attributes disclosed herein. Details of one or moreimplementations of the subject matter described in this specificationare set forth in the accompanying drawings and the description below.

FIG. 1A illustrates an example blood glucose control system thatprovides blood glucose control via an ambulatory medicament pump.

FIG. 1B illustrates another example blood glucose control system thatprovides blood glucose control via an ambulatory medicament pump.

FIG. 1C illustrates a further example blood glucose control system thatprovides blood glucose control via an ambulatory medicament pump.

FIG. 2A shows a block diagram of an example blood glucose controlsystem.

FIG. 2B shows a block diagram of another example blood glucose controlsystem.

FIG. 2C shows a block diagram of another example blood glucose controlsystem.

FIG. 2D shows a block diagram of another example blood glucose controlsystem.

FIG. 3 is a schematic of an example glucose control system that includesan electronic communications interface.

FIG. 4A shows a block diagram of an example blood glucose control systemin online operation mode.

FIG. 4B shows a block diagram of an example blood glucose control systemin offline operation mode.

FIG. 5A illustrates a perspective view of an example ambulatory medicaldevice.

FIG. 5B illustrates a cross sectional view of the ambulatory medicaldevice shown in FIG. 5A.

FIG. 6 illustrates different modules that may be included in an exampleambulatory medical device (AMD).

FIG. 7 illustrates various methods and links that AMD may use toestablish a communication connection with a host computing system.

FIG. 8 is a flow diagram showing an example of a computer-implementedmethod that may be used by an AMD in order to detect and download anapplication update.

FIG. 9 is a flow diagram showing an example of a computer-implementedmethod that may be used by an AMD to install a downloaded applicationupdate without interrupting the therapy provided to a subject.

FIG. 10 is a flow diagram showing an example of a computer-implementedmethod that may be used by an AMD to install a second update downloadedfrom a host computing system and switch control of the AMD from a firstapplication to the second application without interrupting the therapyprovided to a subject.

FIG. 11 is a flow diagram showing an example of a computer-implementedmethod that may be used by an AMD to install a second applicationdownloaded from a host computing system, verify and switch control ofthe AMD from a first application to the second application withoutinterrupting the therapy provided to a subject, only if the secondapplication satisfies a minimum set of operation conditions.

FIG. 12 is a flow diagram showing an example of a computer-implementedmethod that may be used to respond to detection of an application faultduring the execution of a first version of an application and switchingcontrol of the AMD to a second version of the application installed onthe AMD.

FIG. 13 is a flow diagram showing an example of a computer-implementedmethod that may be used to respond to detection of an application faultduring the execution of a first version of an application and switchingcontrol of the AMD to a second version an application installed on theAMD and/or downloading a third version of the application.

FIG. 14. is a block diagram, illustrating an example networkconfiguration wherein the AMD is directly connected to a computingsystem and the computing system shares the therapy reports with one ormore display systems and the AMD.

FIG. 15A is a flow diagram illustrating an example method that may beused by a computing system, to generate and share a therapy report basedon encrypted therapy data received from an AMD.

FIG. 15B is a flow diagram illustrating an example method that may beused by an AMD to transmit therapy to a computing system in a networkedcomputing environment.

FIG. 16. is a block diagram, illustrating an example network and dataflow configuration wherein the AMD is directly connected to a computingsystem and the computing system generates and sends alerts to one ormore display systems and the AMD.

FIG. 17 is a flow diagram illustrating an example method that may beused by a computing system, to generate and send an alert to one or moreauthorized devices.

FIG. 18 illustrates the interconnection among modules and procedures inAMD involved in receiving, accepting and/or canceling therapy changerequest.

FIG. 19 is a flow diagram illustrating an example method that may beused by an AMD to allow a user to change the configuration of theambulatory medicament device using a touch screen user interface.

FIG. 20A is an illustration of the touchscreen display of an example AMDafter the touch screen is waked/unlocked by a wake action of a user andbefore the first user gesture is received.

FIG. 20B is an illustration of an example touchscreen display that mayprompt the user to enter a predetermined series of inputs for the firstgesture or second gesture.

FIG. 20C is an illustration of an example therapy change user interface.

FIG. 20D is an illustration of another therapy change user interface ona touchscreen display.

FIG. 21 is a flow diagram illustrating an example method that may beused by an AMD to generate an alarm status indicator.

FIG. 22 is a flow diagram illustrating an example method that may beused to cancel a therapy change using a touchscreen interface.

FIG. 23A is an illustration of a touchscreen display alerting the userthat the delivery of one or more medicaments will occur.

FIG. 23B is an illustration of a touchscreen display showing that amedicament is being delivered to the user.

FIG. 24 is a block diagram illustrating the interconnection amongmodules and procedures in AMD involved in receiving, accepting and/orcanceling a therapy suspension request.

FIG. 25 is a flow diagram illustrating an example method for receivingand implementing a suspension request, which may be implemented by anAMD

FIG. 26 illustrates a plurality of screens that the ambulatory medicaldevice may display when a user pauses therapy.

FIG. 27 is a flow diagram illustrating an example method of resuming asuspended therapy that may be implemented by an AMD.

FIG. 28 illustrates a plurality of screens that the ambulatory medicaldevice may display when a user resumes therapy.

FIG. 29 is a block diagram illustrating the interconnection amongmodules and procedures in AMD involved in changing the settings of theAMD.

FIG. 30 is a flow diagram illustrating an example method that may beused by an AMD to allow a user to change a setting of the AMD using auser generated passcode or an override passcode.

FIG. 31 is a flow diagram illustrating an example method that may beused by an AMD to allow a user to change a setting of the AMD using auser generated passcode or an override passcode.

FIG. 32 is a schematic diagram illustrating the interconnection amongmodules and procedures in AMD involved in monitoring the status of theAMD and/or the subject and generate alarms when an alarm condition ismet.

FIG. 33A is a flow diagram illustrating an example procedure that may beused by the alarm system of an AMD to annunciate an alarm condition uponreceiving a status information that satisfies an alarm condition.

FIG. 33B is an illustration of a user interface provided on a touchscreen display for accessing the alarm notifications screen when thetouch screen display is locked.

FIG. 33C is an illustration of a user interface user interface providedon a touch screen display for accessing the alarm notifications screenwhen the touch screen display is unlocked.

FIG. 34 is a block diagram illustrating the interconnection amongmodules and procedures in AMD involved in monitoring the condition ofthe AMD and generating alerts when a device malfunction is detected.

FIG. 35 is a flow diagram illustrating an example procedure that may beused by the alert system of an AMD to monitor the operation of an AMDand generate alerts when a device malfunction is detected.

FIG. 36 is a schematic diagram illustrating an ambulatory medical devicethat provides the user with various options for providing medicament.

FIG. 37 is a flow diagram of a process for providing options for mealdosage selection on an ambulatory device.

FIG. 38 is another flow diagram of a process for providing options formeal dosage selection on an ambulatory device.

FIG. 39 is a series of screen displays showing a user initiating theactivation of meal dosage on an ambulatory device.

FIG. 40 is a series of screen displays showing a user activating mealdosage on an ambulatory device.

FIG. 41 is a series of screen displays showing a user activating mealannouncement on an ambulatory device.

FIG. 42 is a series of screen displays showing a user inputting thetotal number of units on an ambulatory device.

FIG. 43 is a series of screen displays showing an ambulatory medicaldevice delivering the units and cancelling the delivery of the units.

FIG. 44 is a schematic illustrating a computer system that can beimplemented in various embodiments of the described subject matter.

FIG. 45 is a flow diagram of a process for receiving manual entry of amedicament dose on an ambulatory device.

DETAILED DESCRIPTION

Some embodiments described herein pertain to medicament infusion systemsfor one or more medicaments and the components of such systems (e.g.,infusion pumps, medicament cartridges, cartridge connectors, lumenassemblies, infusion connectors, infusion sets, etc.). Some embodimentspertain to methods of manufacturing infusion systems and componentsthereof. Some embodiments pertain to methods of using any of theforegoing systems or components for infusing one or more medicaments(e.g., pharmaceutical, hormone, etc.) to a subject. As an exemplaryillustration, an infusion system may include an infusion pump, which caninclude one or more medicament cartridges or can have an integratedreservoir of medicament. An infusion system may include medicamentcartridges and cartridge connectors, but not a pump. An infusion systemmay include cartridge connectors and an infusion pump, but notmedicament cartridges. An infusion system may include infusionconnectors, a lumen assembly, cartridge connectors, an infusion pump,but not medicament cartridges or an infusion set. A blood glucosecontrol system can operate in conjunction with an infusion system toinfuse one or more medicaments, including at least one blood glucosecontrol agent, into a subject. Any feature, structure, component,material, step, or method that is described and/or illustrated in anyembodiment in this specification can be used with or instead of anyfeature, structure, component, material, step, or method that isdescribed and/or illustrated in any other embodiment in thisspecification. Additionally, any feature, structure, component,material, step, or method that is described and/or illustrated in oneembodiment may be absent from another embodiment.

Blood Glucose Control System Overview

A blood glucose control system (BGCS) is used to control blood glucoselevel in a subject. Blood glucose control systems can include acontroller configured to generate dose control signals for one or moreglucose control agents that can be infused into the subject. Glucosecontrol agents include regulatory agents that tend to decrease bloodglucose level, such as insulin and insulin analogs, andcounter-regulatory agents that tend to increase blood glucose level,such as glucagon or dextrose. A blood glucose control system configuredto be used with two or more glucose control agents can generate a dosecontrol signal for each of the agents. In some embodiments, a bloodglucose control system can generate a dose control signal for an agenteven though the agent may not be available for dosing via a medicamentpump connected to the subject.

Glucose control agents can be delivered to a subject via subcutaneousinjection, via intravenous injection, or via another suitable deliverymethod. In the case of blood glucose control therapy via an ambulatorymedicament pump, subcutaneous injection is most common. An ambulatorymedicament pump 100 is a type of ambulatory medical device (“AMD”),which is sometimes referred to herein as an ambulatory device, anambulatory medicament device, a mobile ambulatory device, or an AMD.Ambulatory medical devices include ambulatory medicament pumps and otherdevices configured to be carried by a subject and to deliver therapy tothe subject. Multiple AMDs are described herein. It should be understoodthat one or more of the embodiments described herein with respect to oneAMD may be applicable to one or more of the other AMDs described herein.

In some examples, the ambulatory medical device (AMD) is an electricalstimulation device, and therapy delivery includes providing electricalstimulation to a subject. An example of an electrical stimulation deviceis a cardiac pacemaker. A cardiac pacemaker generates electricalstimulation of the cardiac muscle to control heart rhythms. Anotherexample of an electrical stimulation device is a deep brain stimulatorto treat Parkinson's disease or movement disorders.

FIGS. 1A-1C show examples of blood glucose control systems that provideblood glucose control via an ambulatory medicament pump connected to asubject. In FIG. 1A, the medicament pump 100 is connected to an infusionsite 102 using an infusion set 104. The medicament pump has integratedpump controls 106 a that permit a user to view pump data and changetherapy settings via user interaction with the pump controls 106 a. Aglucose level sensor 110 generates a glucose level signal that isreceived by the blood glucose control system.

In FIG. 1B, the medicament pump 100 communicates with an externalelectronic device 108 (such as, for example, a smartphone) via awireless data connection. At least some of the pump controls 106 a and106 b can be manipulated via user interaction with user interfaceelements of the external electronic device 108. The glucose level sensor110 can also communicate with the medicament pump 100 via a wirelessdata connection.

In FIG. 1C, the medicament pump 100 includes an integrated cannula thatinserts into the infusion site 102 without a separate infusion set. Atleast some of the pump controls 106 b can be manipulated via userinteraction with user interface elements of an external electronicdevice 108. In some instances, pump controls can be manipulated via userinteraction with user interface elements generated by a remote computingenvironment (not shown), such as, for example, a cloud computingservice, that connects to the medicament pump 100 via a direct orindirect electronic data connection.

Glucose control systems typically include a user interface configured toprovide one or more of therapy information, glucose level information,and/or therapy control elements capable of changing therapy settings viauser interaction with interface controls. For example, the user canprovide an indication of the amount of the manual bolus of medicamentfrom an electronic device remote from the medicament pump. The userinterface can be implemented via an electronic device that includes adisplay and one or more buttons, switches, dials, capacitive touchinterfaces, or touchscreen interfaces. In some embodiments, at least aportion of the user interface is integrated with an ambulatorymedicament pump that can be tethered to a body of a subject via aninfusion set configured to facilitate subcutaneous injection of one ormore glucose control agents. In certain embodiments, at least a portionof the user interface is implemented via an electronic device separatefrom the ambulatory medicament pump, such as a smartphone.

FIGS. 2A-2D illustrate block diagrams showing example configurations ofa glucose control system 200 a/200 b/200 c/200 d. As shown in FIG. 2A, aglucose control system 200 a can include a controller 202 a having anelectronic processor 204 a and a memory 210 a that stores instructions208 a executable by the processor 204 a. The controller 202 a and a pump212 can be integrated into an ambulatory medical device (AMD) 100. Thepump 212 can be a regulatory agent pump and/or counter-regulatory agentpump. The AMD 100 can have one or more pumps 212. The AMD 100 caninclude a transceiver or wireless electronic communications interface214 a for wireless digital data communications with external electronicdevices. When the instructions 208 a stored in memory 210 a are executedby the electronic processor 204 a, the controller 202 a can implement atleast a portion of a control algorithm that generates dose controlsignals for one or more glucose control agents based on time-varyingglucose levels of the subject (e.g., received from a glucose levelsensor 110 that is in communication with the medicament pump 100) andone or more control parameters. The dose control signals, when deliveredto the pump 212, result in dosing operations that control the bloodglucose of a subject.

As shown in FIG. 2B, a glucose control system 200 b can operate at leastpartially via execution of instructions 208 b by an electronic processor204 b of an electronic device 108 separate from the ambulatory medicaldevice 100. The electronic device 108 can include a transceiver 214 bcapable of establishing a wireless digital data connection to the AMD100, and a controller 202 b can implement at least a portion of acontrol algorithm via execution of instructions 208 b stored in memory210 b. When the instructions 208 b stored in memory 210 b are executedby the electronic processor 204 b, the controller 202 b can implement atleast a portion of a control algorithm that generates dose controlsignals for one or more glucose control agents based on time-varyingglucose levels of the subject and one or more control parameters. Thedose control signals, when delivered to the pump 212, result in dosingoperations that control the blood glucose of a subject. In someembodiments, the dose control signals are transmitted from the devicetransceiver 214 b to the AMD transceiver 214 a over a short-rangewireless data connection 216. The AMD 100 receives the dose controlsignals and passes them to the pump 212 for dosing operations.

As shown in FIG. 2C, a glucose control system 200 c can operate at leastpartially via execution of instructions 208 c on an electronic processor204 c integrated with a remote computer 206, such as, for example, acloud service. When the instructions 208 c stored in memory 210 c areexecuted by the electronic processor 204 c, the controller 202 c canimplement at least a portion of a control algorithm that generates dosecontrol signals for one or more glucose control agents based ontime-varying glucose levels of the subject and one or more controlparameters. The dose control signals, when delivered to the pump 212,result in dosing operations that control the blood glucose of a subject.In some embodiments, the dose control signals are transmitted from theremote computer WAN connection interface 220 c to the AMD WAN connectioninterface 220 a over an end-to-end wireless data connection 218. The AMD100 receives the dose control signals and passes them to the pump 212for dosing operations.

As shown in FIG. 2D, a glucose control system 200 d can have two or morecontrollers 202 a, 202 b, 202 c that cooperate to generate a dosecontrol signal for dosing operations by the pump 212. A remote computer206 can transmit or receive data or instructions passed through a WANconnection interface 220 c via a WAN wireless data connection 218 to aWAN connection interface 220 b of an electronic device 108. Theelectronic device 108 can transmit or receive data or instructionspassed through a transceiver 214 b via a short-range wireless dataconnection 216 to a transceiver 214 a of an AMD 100. In someembodiments, the electronic device can be omitted, and the controllers202 a, 202 c of the AMD 100 and the remote computer 206 cooperate togenerate dose control signals that are passed to the pump 212. In suchembodiments, the AMD 100 may have its own WAN connection interface 220 ato support a direct end-to-end wireless data connection to the remotecomputer 206.

As shown in FIG. 3, in some embodiments, the glucose control system 200includes circuitry that implements an electronic communicationsinterface (ECI) 302 configured to send and receive electronic data fromone or more electronic devices. The ECI includes a sensor interface orglucose sensor interface 304 configured to receive a glucose levelsignal from a glucose level sensor 110 such as a continuous glucosemonitor (CGM). Some CGMs generate the glucose level signal at fixed orperiodic measurement intervals, such as five-minute intervals. Theglucose level sensor 110 can be operatively connected to a subject inorder to generate a glucose level signal that corresponds to a bloodglucose estimate or measurement of the subject. The glucose level signalcan be used by the controller 202 to generate a dose control signal. Thedose control signal can be provided to a pump 212 via a pump interfaceor delivery device interface 306. In some embodiments, the sensorinterface 304 connects to the sensor 110 via a short-range wirelessconnection 308. In some embodiments, the pump interface 306 connects tothe pump 212 via a short-range wireless connection 310. In otherembodiments, the pump interface 306 connects to the pump 212 via a localdata bus, such as when the controller 202, the ECI 306, and the pump 212are integrated into an AMD 100.

The controller can be configured to generate the dose control signalusing a control algorithm that generates at least one of a basal dose, acorrection dose, and/or a meal dose. Examples of control algorithms thatcan be used to generate these doses are disclosed in U.S. PatentApplication Publication Nos. 2008/0208113, 2013/0245547, 2016/0331898,and 2018/0220942 (referenced herein as the “Controller Disclosures”),the entire contents of which are incorporated by reference herein andmade a part of this specification. The correction dose can includeregulatory or counter-regulatory agent and can be generated using amodel-predictive control (MPLC) algorithm such as the one disclosed inthe Controller Disclosures. The basal dose can include regulatory agentand can be generated using a basal control algorithm such as disclosedin the Controller Disclosures. The meal dose can include regulatoryagent and can be generated using a meal control algorithm such asdisclosed in the Controller Disclosures. Additional aspects andimprovements for at least some of these controllers are disclosedherein. The dose control signal can be transmitted to a pump interface306 via the ECI 302 or can be transmitted to the pump interface 306 viaan electrical conductor when the controller 202 a is integrated in thesame housing as the pump interface 306.

As shown in FIG. 4A, the controller 400 can be configured to operate in“online mode” during time periods when the controller receives a glucoselevel signal 402 from a glucose level sensor 110. In online mode, thecontrol algorithm generates a dose control signal 404 that implementsregular correction doses based on values of the glucose level signal 402and control parameters of the control algorithm. The pump 212 isconfigured to deliver at least correction doses and basal doses to thesubject without substantial user intervention while the controller 400remains in online mode.

As shown in FIG. 4B, the controller 400 can be configured to operate in“offline mode” during time periods when the controller does not receivea glucose level signal 402 from a sensor 110, at least during periodswhen the glucose level signal 402 is expected but not received. Inoffline mode, the control algorithm generates a dose control signal 404that implements correction doses in response to isolated glucosemeasurements 406 (such as, for example, measurements obtained from thesubject using glucose test strips) and based on control parameters ofthe control algorithm. The pump 212 is configured to deliver basal dosesto the subject without substantial user intervention and can delivercorrection doses to the subject in response to isolated glucosemeasurements 406 while the controller 400 remains in offline mode.

Example Ambulatory Medical Device

In some embodiments, the ambulatory medical device (AMD) can be aportable or wearable device (e.g., an insulin or bi-hormonal medicamentpump) that provides life-saving treatment to a subject by delivering oneor more medicaments (e.g., insulin and/or glucagon) to a subject. SomeAMDs may continuously monitor the health condition of a subject (e.g.,blood glucose level) using a sensor (e.g., a blood glucose level sensorthat can measure values corresponding to the blood glucose level) anddeliver therapy (e.g., one or more medicaments) to the subject based onthe condition of the subject. Certain ambulatory medicament devices maybe worn by subjects constantly (e.g., all day), or for a large portionof the day (e.g., during waking hours, during sleep hours, when notswimming, etc.) to enable continuous monitoring of the health conditionof the subject and to deliver medicament as necessary. In someembodiments, an AMD may be an ambulatory medicament device such as amedicament delivery pump. In some examples, an AMD may be a device thatprovides therapy in the form of electrical stimulation based on a healthcondition of a subject (e.g., heart rhythm or brain activity) determinedusing signals received from one or more sensors (e.g., heart beatmonitor or electrodes monitoring activity of the brain).

FIG. 5A illustrates a three-dimensional (3D) view of an exampleambulatory medical device (e.g., an ambulatory medicament delivery pumpsuch as an insulin pump) 500 comprising a housing 502 with a wake button506 and a touchscreen display 504. FIG. 5B is an illustration of a crosssectional view of the AMD 500 shown in FIG. 5A. In this example, all theelectronic systems 508 are included inside the housing 502, for example,as a single integrated electronic board. The wake button 506 may be anytype of button (e.g., capacitive, inductive, resistive, mechanical,etc.) that registers an input generated by user interaction with thewake button 506 to generate a wake signal. In some embodiments, the wakesignal is generated by a sensor (e.g., a biometric sensor such as afingerprint reader or a retinal scanner, an optical or RF proximitysensor, and the like). In various embodiments, the wake signal may begenerated by user interaction with the touch screen display 504 or withan alphanumeric pad (not shown). In some examples, a wake signal may begenerated based on facial recognition or other biometric indicia. Insome examples, the wake signal may be generated by a wireless signalsuch as a signal generated by an RFID system or Bluetooth signalsreceived from an electronic device or by detection of movement using oneor more motion sensors such as an accelerometer. The wake button 506, iftouched, pressed, or held for a certain period of time, may generate awake signal that activates the touchscreen display 504. In someexamples, touches on the touchscreen display 504 are not registereduntil the wake button activates the touchscreen display. In some suchexamples, the AMD remains locked from accepting at least certain typesof user interaction or settings modification until a gesture (such as,for example, any of the gesture interactions described with reference toany of the embodiments disclosed herein) is received after thetouchscreen display 504 is activated by the wake button 506. In someexamples, after the touchscreen display 504 has been activated by thewake signal, a passcode may be required to unlock the touchscreendisplay.

FIG. 6 illustrates different modules that may be included in an exampleAMD 500 (e.g., a glucose control system). As mentioned above, in someexamples, the AMD may comprise a complete glucose control system (e.g.,AMD 100 and glucose control system 200 a). In some implementations, theAMD may include one or more systems that can facilitate monitoring asubject's blood glucose level, maintaining the subject's diabetes,tracking a condition of the AMD, and/or communicating with one or morecomputing systems. For example, the AMD may include a mono-hormonal orbi-hormonal medicament pump configured to administer one or more typesof insulin and, in some cases, counter-regulatory agent (e.g., Glucagonor other medicament that can reduce or address hypoglycemia). As anotherexample, the AMD may include one or more alarm generators, transceivers,touchscreen controllers, display controllers, encryption modules, etc.In some examples, two or more of the modules or systems may beintegrated together inside a single housing 502 (as shown in FIGS. 5Aand 5B). In some examples, one or more modules may be individual modulescontained in separate housings that communicate with other modulesand/or the main unit via a wired or wireless communication link (e.g.,Bluetooth). The modules included in the AMD may include a communicationmodule 602, signal processing module 604, a therapy delivery module 606,a user interface module 608, and a control and computing module 610. Insome embodiments, one or more modules may comprise one or more singlepurpose or multipurpose electronic systems. In some such examples, oneor more electronic systems may perform procedures associated withdifferent features of the AMD. In some other embodiments, one or moremodules may comprise a non-transitory memory that stores machinereadable instructions and a processor that executes instructions storedin the memory. The memory may be a non-volatile memory, such as flashmemory, a hard disk, or any other type of non-volatile memory. In somesuch examples, a module may include several procedures each implementedbased on different sets of instructions.

The control and computing module 610 may include one or more processors614, a main memory 616, a storage 618 that may comprise one or morenon-transitory and/or non-volatile memories and an interface 612 thatenables data and signal communication among systems within the controland computing module 610 as well as communication between the controland computing module and all other modules of the AMD. The main memory616 and the storage 618 each may be divided into two or more memorylocations or segments. The main memory 616 may communicate with theother components of the control and computing module 610 as well asother modules via the interface 612. Instructions may be transmitted tothe main memory (e.g., from the storage) and the processor 614 mayexecute instructions that are communicated to the processor through themain memory 616. The storage 618 may store data while the control andcomputing system 610 is powered or unpowered. The storage 618 mayexchange data with the main memory directly or through the interface612. The main memory 616 can be any type of memory that can storeinstructions and communicate them to the processor 614 and receiveexecuted instructions from the processor 614. Types of main memoryinclude but are not limited to random access memory (“RAM”) andread-only memory (“ROM”). The processor 614 may be any type ofgeneral-purpose central processing unit (“CPU”). In some embodiments,the control and computing module may include more than one processor ofany type including, but not limited to complex programmable logicdevices (“CPLDs”), field programmable gate arrays (“FPGAs”),application-specific integrated circuits (“ASICs”) or the like. Thestorage 618 can be any type of computer storage that can receive data,store data, and transmit data to the main memory 616 and possibly othermodules of AMD 600. Types of storage 618 that can be used in the controland computing system 610 include, but are not limited to, magnetic diskmemory, optical disk memory, flash memory and the like. The interface612 may include data transfer buses and electronic circuits configuredto support data exchange among different components within the controland computing system 610. In some examples, the interface 612 may alsosupport data and signal exchange among other modules as well as dataexchange between any of the modules and the control and computing module610.

The signal processing module 604 may include a plurality ofinterconnected electronic modules for signal conditioning and signalconversion (e.g., A-to-D or ADC conversion and D-to-A conversion or DACconversion) configured to support communication and data exchangebetween different modules. For example, the signal processing module 604may convert an analog signal received from the communication module 602and convert it to a digital signal that can be transmitted to thecontrol and computing module 610 (e.g., via the interface 612). Asanother example, the signal processing module may receive a digitalcontrol signal from the control and computing module 610 and convert itto an analog signal that can be transmitted to the therapy deliverymodule 606, for example, to control one or more infusion pumps includedin the therapy delivery module 606.

In some embodiments, the therapy delivery module 606 may comprise one ormore infusion pumps configured to deliver one or more medicaments (e.g.,insulin or glucagon) to a subject 627. In some examples, the medicamentsmay be stored in one or more medicament cartridges housed in the therapymodule 606. In some examples, the therapy delivery module 606 mayinclude electronic and mechanical components configured to control theinfusion pumps based on the signals received from control and computingmodule 610 (e.g., via the signal processing module 604).

The user interface module 608 may include a display to show variousinformation about the AMD 600, for example, medicament type and deliveryschedule, software status, and the like. The display may show graphicalimages and text using any display technology including, but not limitedto OLED, LCD, or e-ink. In some embodiments, the AMD 600, may include auser interface (e.g., an alphanumeric pad) that lets a user enterinformation or interact with the AMD 600 to modify the settings of theAMD 600, respond to request for certain actions (e.g., installing asoftware) and the like. The alphanumeric pad may include a multitude ofkeys with numerical, alphabetical, and symbol characters. In differentembodiments, the keys of the alphanumeric pad may be capacitive ormechanical. The user may be a subject 627 receiving medicament ortherapy, or may be another user, such as a clinician or healthcareprovider, or a parent or guardian of the subject 627. In some otherembodiments, the AMD 600 may include a touchscreen display that producesoutput and also accepts input enabling a two-way interaction between theuser and the AMD 600. The touchscreen display may be any input surfacethat shows graphic images and text and also registers the position oftouches on the input surface. The touchscreen display may accept inputvia capacitive touch, resistive touch, or other touch technology. Theinput surface of the touchscreen display can register the position oftouches on the surface. In some examples, the touchscreen display canregister multiple touches at once. In some embodiments, the keypad maybe a display of a keypad. For example, an alphanumeric pad comprisinguser-selectable letters, numbers, and symbols may be displayed on thetouchscreen display. In some examples, the touchscreen may present oneor more user-interface screens to a user enabling the user to modify oneor more therapy settings of the ambulatory medicament device. In someexamples, a user-interface screen may comprise one or more parametercontrol elements. Further, a user-interface screen may include one ormore user input elements displayed on the screen that enable a user tointeract with the AMD 600.

In some embodiments, the communication module 602, may include one ormore wireless transceivers, one or more antennas, and one or moreelectronic systems (e.g., front end modules, antenna switch modules,digital signal processors, power amplifier modules, etc.) that supportcommunication over one or more communication networks. In some examples,each transceiver may be configured to receive or transmit differenttypes of signals based on different wireless standards via the antenna(e.g., an antenna chip). The transceiver may support communication usinga low power wide area network (LPWAN) communication standard. In someexamples, the transceiver may support communication with wide areanetworks (WANs) such as a cellular network transceiver that enables 3G,4G, 4G-LTE, or 5G. Further, the transceiver may support communicationvia a Narrowband Long-Term Evolution (NB-LTE), a NarrowbandInternet-of-Things (NB-IoT), or a Long-Term Evolution Machine TypeCommunication (LTE-MTC) communication connection with the wireless widearea network. In some cases, the transceiver may support Wi-Fi®communication. In some examples, the transceiver may be capable ofdown-converting and up-converting a baseband or data signal from and toa wireless carrier signal. In some examples, the communication modulemay wirelessly exchange data between other components of the AMD 600(e.g., a blood glucose level sensor), a mobile device (e.g., smartphone, a laptop and the like), a Wi-Fi network, WLAN, a wireless router,a cellular tower, a Bluetooth device and the like. The antenna may becapable of sending and receiving various types of wireless signalsincluding, but not limited to, Bluetooth, LTE, or 3G. In some examples,the communication module 602 may support direct end-to-end communicationbetween the AMD 600 and a server or a cloud network. In some examplesthe AMD may communicate with an intermediary device (e.g., a smart phoneor other mobile devices, a personal computer, a notebook, and the like).In some embodiments, the AMD may include an eSIM card that storesinformation that may be used to identify and authenticate a mobilesubscriber. The eSIM card may enable the AMD to function as an IoTdevice that can communicate over a network that supports communicationwith IoT devices. In other embodiments, the AMD may be configured totransmit data using a narrowband communication protocol such as 2G orEDGE. Using the cellular connection, the AMD 600 may be paired with amobile device at inception and permit real-time data access to the AMD600 by a healthcare provider. In certain implementations, the AMD 600may include a geolocation receiver or transceiver, such as a globalpositioning system (GPS) receiver. As previously stated, each of theAMDs described herein may include one or more of the embodimentsdescribed with respect to the other AMDs unless specifically statedotherwise.

Example Operation of the AMD

In some embodiments, the AMD 600 (or AMD 100) may continuously,periodically, or intermittently receive information about one or moreparameters that are correlated with a health condition of the subject627 (e.g., blood glucose level, blood glucose trend, heart rate, bodymovement indicia, etc.). This information may be encoded to a signalprovided to AMD 600 by a glucose level sensor hereinafter referred to as“subject sensor” 620 (e.g., a wearable biomedical sensor that measuresan analyte in the interstitial fluid) that is connected to the AMD 600via a wired or wireless link (e.g., Bluetooth). In some examples, thesignal sent by the subject sensor 620 may be received by thecommunication module 602 and transmitted to a signal processing module604 that converts the signal to a machine-readable signal (e.g., adigital signal). In some examples, a second communication module may beincluded in the AMD 600 to communicate with the subject sensor 620. Insome examples, the signal processed by the signal processor module 604may be transmitted to the control and computing module 610 where thesignal may be analyzed to determine whether medicament should bedelivered to the subject 627. If it is determined that medicament shouldbe administered to the subject, the control and computing module maydetermine the dosage and type of medicament to administer based on theinformation received from the subject sensor 620 and send a dose signalto the therapy delivery module 606 (e.g., directly or via the signalprocessing module 604) to initiate the medicament delivery to thesubject (e.g., using an infusion pump of the therapy delivery module606).

In some embodiments, one or more procedures within the control andprocessing module 610 may be executed by the processor 614 (or aplurality of processors) based on instructions provided by one or moresoftware applications installed in one of the memories (e.g., the mainmemory 616) of control and computing module 610. These proceduresinclude, but are not limited to, determining the need for deliveringmedicament, determining the type of medicament and the required dose,determining the rate of delivery during a therapy session, providinginformation (e.g., device status, next delivery time, level of certainanalytes in the subject's blood and the like) via the user interfacemodule 608, processing the information received from a subject sensor620 via the user interface 608, and the like. In some embodiments, afirst software application may control the AMD 600 and may be installedon the main memory 616 while a second software application (e.g.,different version) may be stored in the storage 618. In some examples,the first and second software applications may be both installed in themain memory 616 but in different locations or segments. In some suchexamples, if needed, the control of the device can be switched from thefirst software application to the second software application.

In some embodiments, the AMD 600 may deliver multiple types of therapiesthat are selectable by a user or the control and computing module 610.For example, the AMD 600 may deliver the therapy of infusing insulininto a user and may also deliver the therapy of infusing glucagon intothe user. In some examples, the user interface may include an option forthe user to select an infusion of insulin, glucagon, or both insulin andglucagon. In other embodiments, other hormones, liquids or therapies maybe delivered. In some examples, the software application executed by thecontrol and computing module 610, may determine the type of hormone thatneeds to be delivered, at least in part based on the informationreceived from the subject sensor 620.

Communication and Networking

FIG. 7 illustrates various methods and links or communication paths thatan AMD 702 may use to communicate (e.g., by establishing a connection)with a host computing system 704, for example, to obtain an applicationupdate, send and/or receive therapy reports, receive passcodes, receivecontrol parameters and the like. In some examples, the host computingsystem 704 may be a server 706 or a computing system within a cloudcomputing network 708, or other networked computing environments, thatprovide networking computing services (e.g., network storage,application hosting, and/or network processing services). In someexamples, the host computing system 704 may be part of a data center(e.g., the data center of a healthcare provider).

In some embodiments, the AMD 600 may establish a connection (e.g., usingthe communication module 602) with the host computing system 704 throughan intermediary device 710 (e.g., a smart phone or other mobile devices,a personal computer a notebook or the like). In some such examples, theAMD 600 may receive an application update from a local device 710 of auser (e.g., a clinical computer, a subject's home computer, asmartphone, etc.) that has obtained a copy of the application updatefrom the host computing system directly or via internet 714. In someexamples, the AMD 600 may communicate with the host computing system 704through a local area network (LAN) and/or through a Wi-Fi connection.Alternatively, or in addition, the AMD 600 may establish a communicationconnection to the host computing system 704 via a wide area network(WAN) 716. In some examples, the communication between the AMD 600medical device and the cloud computing service may be encrypted.

In some embodiments, the AMD 600 may establish a direct end-to-endcommunication connection over a wide area network (WAN) 716 (e.g., acellular network) with the host computing system 704. In some cases, adirect-end-to-end communication connection may be a connection that doesnot involve a local device, a device that is accessible by the user orthe subject (besides the AMD 600), a Wi-Fi network, a short rangewireless link (e.g., Bluetooth), or the like. In some such cases, thedirect end-to-end communication may pass through one or more wirelesssystems (e.g., receivers, transmitters or antenna) of a WAN. In someexamples, the host computing system 704 may establish the end-to-endconnection by receiving a public key from the AMD 600. In some examples,the public key and a private key stored in the host computing system 704can be used to permit the host computing system 704 to decrypt datacommunications transmitted by the AMD 600. In some implementations, thehost computing system 704 may establish a direct end-to-end dataconnection with the AMD 600 based on receiving a device identifierassociated with the AMD 600. The device identifier may be a uniqueidentifier specific to the AMD. In some other implementations,establishing the direct end-to-end data connection may includedetermining that the AMD 600 is permitted to communicate with the hostcomputing system 704 based at least in part on the device identifier. Insome examples, the device identifier may be initially provided to thenetworked-computing environment prior to provisioning of the AMD 600 tothe subject. For example, the device identifier may be initiallyprovided to the networked-computing environment as part of amanufacturing process for manufacturing the AMD 600. In some examples,the device identifier may include or may be based on one or more of anInternet Protocol (IP) address, a Media Access Control (MAC) address, aserial number, or a subject identifier of a subject that receivestherapy from the AMD 600. In some cases, the subject or a user mayestablish or initiate establishing the direct end-to-end data connectionwith the host computing system 704. In some cases, the direct end-to-enddata connection may be initiated or established without any action bythe subject or the user. For example, the direct end-to-end dataconnection may be established automatically at particular times and/orwhen the AMD 600 is in a particular location. In some such cases, thisautomatic connection may occur using information supplied to the AMD 600at a time of manufacture, shipment, sale, or prescription to thesubject. Alternatively, or in addition, a subject or other user mayconfigure the AMD 600 to automatically connect to the host computingsystem 704 at particular times and/or locations. In some cases, the widearea network may include, or may communicate with, the Internet 714.

In some embodiments, the AMD 600 may be configured to communicate viathe wide area network during manufacture or prior to being provisionedto the subject. For example, a manufacturer can register the AMD 600with a wireless wide-area network provider (e.g., T-Mobile or Verizon)and provide an International Mobile Equipment Identity (IMEI) number orserial number for the AMD 600 to the network provider. Moreover, feescan be negotiated between the manufacturer and the network provider orbetween the subject's health insurance and the network provider.Similarly, fees may be paid by the manufacturer or health insuranceprovider, or other entity, without subject involvement. Thus, thesubject's AMD 600 may be configured to communicate via the network ofthe network provider without any action by the subject or the user. Insome cases, the subject may be responsible for obtaining wirelessservice to connect the AMD 600 to a wide area network 716 (e.g., acellular network).

In some examples, the AMD 600 may be pre-registered or authenticatedwith a computing network of the cloud services provider as part of themanufacturing process or before AMD 600 is provided to the subject. Thisenables the AMD 600 to communicate over the wide area network with thecomputing system of the cloud services provider from day one without anyor with minimal configuration by the subject. In some cases, a user,such as a healthcare provider may register or associate the AMD 600 withthe subject at the computing network of the cloud services provider.

In some embodiments, the AMD 600 may use a whitelist, or approved list,that identifies via a unique identifier (e.g., via an IP address, a MACaddress, or a URL) one or more permitted cloud servers or computingsystems of the cloud computing system 708 that the AMD 600 is permittedto access. By restricting access to an approved set of computingsystems, the risk of malicious actors accessing the AMD 600 is reduced.Moreover, in some cases, the AMD 600 may include a blacklist, orrestricted list, that identifies systems the AMD 600 is not permitted toaccess. The blacklist may be updated as more restricted or unsafewebsites, network accessible systems, or computing systems areidentified. Similarly, the whitelist may be updated over time ifapproved systems are added or removed.

Further, the cloud computing service may have a whitelist, or approvedlist, that uses unique identifiers to specify AMD 600 and/or othercomputing systems (e.g., remote display systems) that are permitted tocommunicate with the cloud computing system 708. Moreover, as with theAMD 600, the cloud computing service may have a blacklist or restrictedlist that identifies AMDs, or other computing devices, that are notpermitted to access the cloud computing services. An AMD may be added tothe restricted list if it is decommissioned, damaged, or is no longer inpossession of the subject. It may be desirable to remove an AMD's accessto the cloud computing service to help protect private or personal dataof a subject. Advantageously, establishing a connection based on awhitelist may enhance the security of the communication link establishedbetween AMD 600 and the cloud computing system 708 or other computingsystems. In addition to the identifiers that identify permittedcomputing systems for access by the AMD and/or permitted AMDs for accessby a cloud or networked computing service, the whitelist may include anyinformation that may facilitate access to the systems identified on thewhitelist. For example, the whitelist may include access information(e.g., usernames, passwords, access codes, account identifiers, portidentifiers, a shared secret, public keys, etc.). It should beunderstood that the whitelist may include different informationdepending on whether the whitelist is publicly accessible, accessible byonly the AMD, accessible by authorized users or devices, etc. Forexample, a publicly accessible whitelist or a whitelist accessible bymore than one authorized system or user may not include passwords oraccess codes.

In some cases, the AMD 600 may use a whitelist that identifies via, forexample, a unique identifier (e.g., via an IP address, a MAC address, ora URL) permitted cloud servers or computing systems of the cloudcomputing system 708. In some examples, the cloud computing system mayhave a whitelist that uses unique identifiers to specify AMD 600 and/orother computing systems (e.g., remote display systems) that arepermitted to communicate with the cloud computing system 708. Thewhitelist may be stored in a memory of AMD 600 and/or in a memory of atrusted computing device that is accessible by the AMD 600. The trustedcomputing device can include any computing device that a manufacturer ofthe AMD has identified as trusted. Alternatively, or in addition, thetrusted computing device can include any computing device that a subjector user that helps caste for the subject (e.g., parent, guardian,healthcare provider) has identified as a trusted computing device thatis designated to store the whitelist. In some examples, the whitelistmay be configured during manufacture of the AMD 600. For example, thewhitelist may be configured with connection information to establishcommunication with one or more computing systems of anetworked-computing environment. In some examples, the AMD 600 may beconfigured to execute the specific computer-executable instructions toat least obtain an address of a computing system from the whitelist andto establish a direct end-to-end data connection to the computing (e.g.,a computing system in the networked-computing environment), via awireless wide area network using the address. In some embodiments, theAMD 600 may be configured to execute the specific computer-executableinstructions to at least receive a public key from the computing systemof the networked-computing environment.

Application Update of Ambulatory Medical Device

It is often the case that a computer or software application is updatedafter it is released. Similarly, it is possible in some cases to updatesoftware or an application used to control or provide features for amedical device (e.g., an automated blood glucose control system or otherAMD). In some cases, the application is updated to patch bugs orvulnerabilities. In some cases, the application is updated or replacedwith a new version to introduce new features or improve existingfeatures, or to provide access to newly purchased, licensed, orotherwise obtained features. Regardless of the reason, it is often thecase that an application is shutdown or is not executing while theapplication is updated. For most applications, there is minimal to noharm in shutting down or not executing an application while it isupdated or otherwise replaced. For example, it is inconsequential that avideo game, word processing, or edutainment application is not executingwhile it is updated.

However, it can be inconvenient, harmful, or, in some cases,life-threatening to cause an application on an ambulatory medical device(AMD) to cease executing while it is updated or replaced by a newversion of the application. If a subject that is receiving therapy fromthe ambulatory medical device enters a state where therapy is desired orneeded while an application or control software of the AMD is beingupdated or replaced, harm may occur to the subject. For example, supposethe AMD is an insulin pump, such as those that may be used by a type-1diabetic. If the insulin pump becomes inoperative due to an applicationupdate process occurring at a time when a subject's blood glucose levelexceeds a set-point or target range, the user may not receive anecessary insulin bolus from the AMD. Thus, it is desirable to reduce oreliminate disruption to subject care or therapy when updatingapplications, such as control software, of an ambulatory medical device.

In some embodiments, an AMD includes a computer-implemented method ofupdating an application executing on the AMD without interrupting, orwhile causing minimal interruption, to therapy provided by the AMD to asubject or subject. The method may generally be performed by a hardwareprocessor, (e.g., a controller, and the like), included in an AMD andbased on a set of instructions that may be stored, for example, in anon-transitory memory of the AMD. The application update may include abinary executable file that may be executed by various processors of theAMD. The application update may be a new version of the application, areplacement or substitute application, or an application patch. Further,the application update may add or remove features to the version of theapplication installed on the AMD. In some examples, the applicationupdate may be an older version of the application that has been used byinstances of the AMD for more than a threshold period of time and hasexperienced less than a threshold number of faults. The application tobe updated on the AMD may be currently executing on the ambulatorymedical device or may be executed in future. In some examples,

The application update may be stored in one or more host computingsystems. In some cases, the application update may be pushed to the hostcomputing systems by a company that manages or manufactures theambulatory medical device or other software company that is authorizedby the manufacturer or licensee of the device. In some cases, the hostcomputing system comprises a server computing device, a cloud computingdevice, a computing device of a healthcare provider, a computing deviceof a manufacturer of the AMD, an application server, or other networkaccessible computing device or system. In some cases, the applicationupdate may be stored in a local computing device, for example, a localcomputing device of the subject (e.g., a smartphone, a laptop or apersonal computer).

FIG. 8 is a flow diagram showing an example of a computer-implementedmethod that may be used by the AMD 600 in order to detect and downloadan application update from a host computing system or other computerreadable media in which a copy of the application update may be stored.In some examples, the AMD 600 may directly communicate with the hostcomputing system. In some cases, the AMD 600 may communicate with aproxy or other system to determine the availability of an applicationupdate or to acquire the application update. In some cases, theapplication update may be obtained from a content delivery network (CDN)or cache server.

At block 802 the AMD 600, such as a medicament delivery device or amedicament pump may receive an indication that an update is availablefor an application, such as control software or other software thatcontrols or facilitates the operation of the AMD 600. In someembodiments, the indication may be a determination made by a software orhardware module included in the AMD 600. For example, the AMD 600 mayaccess a particular host computing system (e.g., using its communicationmodule) to determine whether an update is available, based on a set ofupdate trigger conditions stored in a memory of AMD 600. The set ofupdate trigger conditions may include any type of trigger condition thatmay cause the AMD 600 to determine if a software update is availableand/or to update an application executing on the AMD 600. In some cases,the set of update trigger conditions may be defined/changed by a userand/or received by AMD 600 from a host computing system. For example, anupdate trigger condition may push the AMD 600 to periodically search foran update at time intervals set by the user or received from a hostcomputing system. In other words, an application update availabilitycheck may be triggered by the AMD 600. The application updateavailability check may be performed in response to a time trigger or anyother type of trigger. For example, an update availability check triggercan be a user command, the replacement of medicament within theambulatory medical device, connecting to a particular network (e.g.,connecting to a Wi-Fi network using a wireless transceiver, or thelike), a scheduled time being reached, an occurrence of a fault, anoccurrence of a particular condition in the AMD, or any other type oftrigger. In some examples, the indication that the application update isavailable comprises an indicator of whether the application updatecorresponds to a first application version or a second applicationversion of the application. In some examples, the AMD 600 may access anupdate server to determine whether the application update exists, and inresponse to accessing the update server, receive the indication that theapplication update is available. In some cases, a trigger to connect toan update server to determine the availability of an application updatemay include a detection of a fault with the currently executingapplication or an indication of a change in permitted features that auser or subject is permitted to access with the AMD 600.

In some examples, the host computing system may query or access the AMD600 to determine an installed software version of the application and/ora hardware configuration to determine the eligibility of the ambulatorymedical device for a software upgrade. In some cases, the eligibilityfor the software upgrade may be based at least in part on a license orwarranty. The serial number, the model number, and/or the softwareversion may be used to determine application update (e.g., a softwareupgrade) eligibility. In some embodiments, the eligibility for anapplication update may be determined based on the geoposition of thedevice and/or whether the device is connected to a local area network(e.g., a Wi-Fi network) or a wide area network (e.g., a cellularnetwork). In various embodiments, the ambulatory medical device may havea transceiver and an antenna that provides the device with GPS, text orpicture messaging, telephone calling, and data transfer capabilities. Insome cases, the application update may be provided on a limited release,such as to test groups of varying size, e.g., 1-100, 1-1000, or 1-10000users. Further, there may be a phased rollout of the application updatesto different groups of users. In some embodiments, the AMD 600 mayrespond to an upgrade eligibility request by transmitting an identity ofa version of the application or a model identification information ofthe AMD 600 or a manufacturing date of the AMD 600 to the host computingsystem.

If at block 802 the AMD 600 determines that an update is available foran application (e.g., an application that may be executing on the AMD600), at block 804 the AMD 600 may establish a communication connectionto a host computing system that hosts the update to the application.Such connection may be established, for example, via one or more linksor methods discussed above with reference to FIG. 7. For example, theAMD 600 may communicate with a cloud 708 or a server 706 using a localarea network 712, Internet 714, or wide area network 716. In someexamples, a healthcare provider system may push the update to the AMD600. In some examples, a communication connection via wide area network716, may be a direct end-to-end communication connection. In someexamples, the communication connection with the host computing systemmay be established via an intermediate device 710 (e.g., a personalcomputing device of the user or the subject).

In some examples, the AMD 600 may establish a direct end-to-end dataconnection to a host computing system via a wireless wide area network(WAN). The direct end-to-end data connection may comprise a narrow bandlong-term evolution (NB-LTE) connection, an NB Internet-of-Things(NB-IoT) connection, a cellular IoT connection, a 4G LTE connection, ora 5G connection. The direct end-to-end data connection may be aconnection that is directly between the AMD 600 and the host computingsystem allowing without an intermediary system or computing devicewithin a local area network of the AMD 600 being involved in thecommunication. A direct end-to-end data connection may include routingdata or the connection through networking hardware, base stations, orother devices included in a wide area network, such as the Internet.However, other computing devices within a local area network thatincludes the AMD 600 may be omitted. Thus, for example, the AMD 600 doesnot communicate with a smartphone, laptop, smart appliance, or otherdevice within a local area network of a user or subject that uses theAMD 600. In some cases, the AMD 600 may communicate with an intermediarysystem to obtain the application update. For example, the applicationupdate may be downloaded to a local system (e.g., a laptop or smartphoneof the user), and then provided to the AMD 600 via a local area network,a USB connection, a near-field communication technology (e.g.,Bluetooth, ZigBee, LoRa, etc.).

Once a communication connection is established at block 804, at block806 the AMD 600 may download the application update from the hostcomputing system over the communication connection. In some examples,the AMD 600 may download an image of the application update from thehost computing system. While the application update is being downloaded,an existing version of the application on the ambulatory medical devicemay continue to execute. Thus, there may be little or no interruption totherapy provided by the AMD 600 while the application update is beingobtained by the AMD 600.

In some examples, the AMD 600 may be linked to an intermediary device710 (e.g. a mobile device) via a communication link (e.g., Bluetooth,WiFi, NFC or other wireless or wired means of communications). In someexamples, the AMD 600 may include a SIM card or an electronic SIM (eSIM)card that stores information for identifying and authenticating a mobileintermediary device. The eSIM card enables the AMD 600 to function as anIoT device that can communicate or transmit data over a network thatsupports communication with IoT devices. Further, the ambulatory medicaldevice may be configured to transmit data in a narrowband communicationprotocol such as 2G or EDGE, NB-LTE, 5G, etc. The intermediary device710 may also communicate with a cloud 708, a server 706. In some suchexamples, the software update may be initially downloaded by theintermediary device that communicates with the AMD 600 periodically orat pairing. The intermediary device may determine if the AMD 600 iseligible for the software update based at least partially on the serialnumber, manufacturing date, current software version, model number, andmost recent software image on the cloud 708 or the server 706, and thelike. If AMD 600 is eligible for the software upgrade, the intermediarydevice may download the target image and transfer the image to the AMD600.

In some examples, the application or the application comprises one of afirst application version comprising a first feature set or a secondapplication version comprising a second feature set. In some cases, bothapplication versions may have the same feature set, but the feature setmay include an improved or modified version of at least one of thefeatures. For example, one of the application versions may have a userinterface that is less cluttered compared to the other applicationversion. As another example, one of the application versions may supporta meal controller while the other application version may not. In someexamples, the AMD 600 may download the first application updatecorresponding to the first application version or a second applicationupdate corresponding to the second application version. In someexamples, the AMD 600 may download the first application update or thesecond application based at least in part on the application version ofthe application.

Once the application update is obtained, at the decision block 808 theAMD 600 may perform one or more operations to confirm that thedownloaded copy of the application update is complete and/or is notcorrupted (e.g., using its control and computing module 610). Todetermine that the downloaded application update is complete and/or notcorrupted, the AMD 600 may calculate a hash or checksum value from thedownloaded application update and may compare the calculated hash orchecksum value with a received hash or checksum value received from theapplication host system. If the calculated hash or checksum valuematches the received hash or checksum value, then it may be determinedthat the download is complete and/or not corrupted. Further, the AMD 600may use the checksum, a tag, a payload size, or any other method toconfirm that the download of the application update is complete and notcorrupt. If it is determined that the download is corrupt and/or did notdownload completely, the AMD 600 may discard the corrupted or incompletecopy of the update. The AMD 600 may attempt to download another copy ofthe update and/or alert a user to the failed attempt to download theapplication update or to update the application. If it is determinedthat the download is complete and not corrupt, the AMD 600 may proceedto the installation step 810 where the application update may beinstalled on the AMD 600 without interrupting the ongoing or upcomingtherapy sessions.

FIG. 9-11 are flow diagrams illustrating examples ofcomputer-implemented methods that may be used by the AMD 600 to installa downloaded application update without disrupting the therapy providedto a subject.

In the example method illustrated in FIG. 9, at block 902 the AMD 600verifies that an uncorrupted copy of the update for an application issuccessfully downloaded (e.g., using the procedure described above withreference to FIG. 8). At block 904, AMD 600 (e.g., the control andcomputing module (CCM) 610 of the AMD 600) may determine an amount oftime required to install the application update. In some examples, theinstallation time may be an execution time for executing a process toinstall the downloaded copy of the application update. Alternatively, orin addition, the installation time may be an amount of time to performthe installation process. In some cases, the time determined at theblock 904 is an estimated install time. A general-purpose computingsystem may execute any number or type of applications, and it is unknownwhat applications a particular user may decide to execute. However, anAMD typically is special purpose and it is generally known whatapplications it executes. Often the only application executing may becontrol software or user interface software. Thus, usually, the estimateof installation time will be close to the actual installation time.However, differences in manufacture of electronic elements or naturaldeterioration of components (e.g., memory) over time may lead to somesmall changes in installation time application. Accordingly, the installtime for the application may, in some cases be buffered or padded toensure that the estimated or determined install time is not shorter thanthe actual install time for the application update.

The installation time may be determined by the CCM 610 based on the dataor metadata included in the downloaded application update. For example,the application update may include a file (e.g., a text file orconfiguration file) that includes the install time or an estimatethereof. The installation time may be determined by the manufacturer ofthe ambulatory medical device or the publisher of the applicationupdate. For example, the developer of the software update may averagethe install time across several test devices to determine the installtime metadata that is provided with the software update. General purposecomputers have a wide variety of configurations and the performance of ageneral-purpose computer may vary depending on the applicationsexecuting at a particular time. Thus, the determination of install timefor an application based on the measurement of install time on a testdevice is typically unreliable. However, as an AMD 600 is often aspecial-purpose device that is designed to perform a specific function(e.g., provide insulin to a subject), an install time determined duringtesting by a manufacturer may, in many cases, be a reliabledetermination of install time on an ambulatory medical device of asubject. Alternatively, or in addition, the install time of anapplication update may be determined or estimated based on a size of theapplication update (e.g., by the manufacturer or the CCM 610 of the AMD600). In some cases, the provided or estimated install time may includea buffer. In other words, an additional amount of time may be added tothe install time to account for variances in operating condition of theambulatory medical device or inaccuracies in the estimated install time.

At block 906 the AMD may notify the user that an application update isavailable for installation and wait for a trigger signal to initiate theinstallation process. In some examples, the AMD 600 may notify the userthrough a user interface (e.g., a touchscreen display), that an updatedownloaded and is ready for installation. The notification may includethe installation time and information about the update, such as whatfeatures are modified or added, or what bugs are patched or fixed.

At decision block 908 the AMD 600 may determine whether an installationtrigger is received or not. If the installation trigger is not received,AMD 600 may send one or more notifications to the user indicating that anew update is ready for installation. In some examples, the installationtrigger may be the confirmation that the application was successfullydownloaded. In other words, once it is confirmed that the application issuccessfully downloaded, the application may be automatically installed.Alternatively, or in addition, the installation trigger may be aninstallation command received based on an interaction of a user orsubject with a user interface that is part of or that communicates withthe ambulatory medical device. In some such examples, the AMD 600 mayprovide an option to the user to select a time at which the applicationwill be installed and/or may permit the user to request a reminder toinstall the application update at a later time. In some examples, theinstallation trigger may comprise a determination that the downloadedcopy of the application update is complete, a determination that thedownloaded copy of the application update is not corrupted, or adetection of a fault during execution of an application currentlyrunning on or controlling the AMD.

At block 910, the AMD 600 determines if therapy is currently beingadministered to the subject. If the AMD 600 determines that no therapyis currently being administered, the process proceeds to block 914, Ifthe AMD 600 determines that therapy is currently being administered, thesystem proceeds to block 912 and waits until the therapy session iscompleted delaying the installation of the application or applicationupdate at least until the therapy session or the administering of thetherapy is complete. In some cases, the AMD 600 may continue to checkwhether there is ongoing therapy occurring. Ongoing therapy may at leastinclude administering a medicament. However, other actions may beincluded as part of the ongoing therapy, such as performing one or morephysiological parameter measurements. Once the current therapy sessionis complete or is determined to be complete, the process may proceed toblock 914.

At block 914 the AMD 600 may determine an amount of time or a timeremaining until a scheduled or anticipated next therapy delivery time(e.g., during which medicament, such as insulin is delivered to asubject). In some cases, the determination of the next time that therapyis to be delivered may be an estimate based on historical delivery oftherapy, a present condition of the subject (e.g., when a glucose levelis of a subject is at the center of a desired range, the next therapydelivery time may be estimated to be further off than when the glucoselevel is at the edge of the desired range), and/or an indicationprovided by a user or subject (e.g., an indication that the user isplanning to have a meal, to exercise, or to go to sleep). Alternatively,or in addition, the determination of the next time that therapy is to bedelivered (e.g., next scheduled dosage period) may be based on ascheduled delivery of therapy (e.g., every 5 minutes or every hour,etc.). Further, in some cases, the determination of the next therapydelivery time period may be determined by querying a user (e.g., thesubject). In some examples, a dose control signal can be generated at anext scheduled dosage period after determining that a resumptioncondition has occurred as discussed herein. In some examples, a dosecontrol signal can be generated immediately after, or shortly after,determining that the resumption condition has occurred.

As previously described, it is desirable to prevent disruption totherapy during the application update process. Thus, after the nexttherapy time is determined at block 914, at the decision block 916 theAMD 600 may compare the estimated installation time to the determined orestimated next therapy delivery time to determine whether theinstallation of the application update can be completed before the nexttherapy delivery to the subject. If the AMD 600 determines that the timeleft until the next therapy session is sufficiently longer (e.g., thelength of installation time, or the estimated installation time and aminimum additional time buffer) than the determined time for completingthe installation, the process may proceed to block 918 whereinstallation of the application update may be initiated. In someexamples, the determined time to the next therapy session may berequired to be longer than the determined installation time by athreshold value before installation may be permitted to commence. Thethreshold value may vary for different application updates and/or thetype of therapy to be administered during the next scheduled oranticipated therapy session. If at the decision block 916 it isdetermined that the application installation cannot be completed beforethe next therapy delivery (or the time left until the next therapy isnot larger than that estimated installation time by a threshold value),the installation of the application may be delayed, regardless ofreceipt of the trigger. In this case, the process may return to block914 where the AMD 600 waits for the next therapy to be completed andthen determines a new therapy time. This process may be repeated untilAMD 600 determines that the update can be installed without interruptingan expected or scheduled therapy delivery by the AMD. In some examples,a new determination may be made before completion of the next therapy,to determine whether installation may be completed prior to a subsequenttherapy time after the next therapy time. In some cases, if at thedecision block 916 the AMD determines that the installation process willnot complete prior to the next therapy time, the AMD may cause an alertto be output for display to a user.

In some cases, a time when the application can be installed withoutinterrupting therapy may not be identified. In some such cases, a user(e.g., a clinician or other medical provider, or a subject) may beprovided with an alert that an application update is available and/orthat the application update cannot be installed without interruptingtherapy. The user may be provided with an option as to whether to permitthe update and/or when to install the application update. The option mayinclude presenting the user with the estimated install time enabling theuser to schedule the application update at a time when interruptions totherapy may be minimal or when an alternative source of therapy (e.g.,injection therapy) can be utilized.

FIG. 10 is a flow diagram illustrating an example of acomputer-implemented method that may be used by the AMD 600 in order toinstall a second application that is an update to a first applicationexecuting on the AMD 600, without disrupting the therapy provided to asubject. The AMD may identify and download the second application updateusing the process described with reference to FIG. 8. In some cases, thesecond application update may be a new version of the application, apatch to the application, an older version of the second application, ora replacement application for the application. In some examples, thesecond application may be a version of the first application that hasbeen determined to operate without fault with a threshold degree ofcertainty.

At block 1002, the AMD 600 verifies that an uncorrupted copy of thesecond application is successfully downloaded. In some embodiments,block 1002 may include one or more of the embodiments previouslydescribed with respect to block 808 in FIG. 8 and/or block 902 in FIG.9. At block 1004 the AMD 600 may initiate the installation process ofthe second application without interrupting the execution of the firstapplication. In some examples, the application update may be installedin a different memory location or separate area of the volatile memorythan the memory location or area of the volatile memory where theoriginal application (or current version of the application) isinstalled and executed. In some embodiments, the second application maybe executed in a second execution space that is separate from the firstexecution space. The separate execution spaces may be in separate areasof a volatile and/or non-volatile memory. For example, the first andsecond application may be stored in separate areas of the non-volatilememory. Further, the first and second application may each be allocatedseparate areas of a volatile memory for execution. The separate areas ofthe volatile memory may serve as separate sandboxes preventinginterference between the execution of the first application and thesecond application. In some embodiments, the first application may beexecuted by a first controller and the second application may beexecuted by a second controller.

At block 1006 the AMD 600 may confirm the successful installation of thesecond application and wait for a trigger signal. At block 1008 the AMD600 may send a notification to the user via a user interface of the AMD(e.g., a touchscreen display) and request a trigger to execute thesecond application and switch control of the AMD 600 from the firstapplication to the second application. At the decision block 1010 theAMD 600 may determine whether a trigger is received or not. In someexamples, the AMD 600 may determine the amount of time required forswitching the control of AMD from the first application to the secondapplication. In some such examples, the notification may includeinformation about the update and the time required for switching betweenthe applications. In some examples, the trigger may be a user commandreceived based on an interaction by a user or subject with a userinterface that is part of or that communicates with the AMD. In someexamples, the trigger may be a confirmation of successful installationof the second application or a detection of a fault during execution ofthe first application by the AMD 600. In some examples, the trigger maybe an indication of an availability of the second application or adetection of an application fault associated with execution of the firstapplication. As with the process described in FIG. 9, the trigger may bebased at least in part on whether therapy is currently beingadministered and/or the timing of a subsequent therapy to be delivered.

If at the decision block 1010 the AMD 600 determines that a trigger isnot received, the process may return to block 1008 where the AMD 600 maysend one or more notifications to the user indicating that a new updateis ready for installation. If at decision block 1010 it is determinedthat a trigger is received, at block 1012 the AMD 600 may check whethera therapy session is ongoing or not. If the AMD 600 determines thattherapy is currently being administered, the process proceeds to block1014 and the AMD 600 waits until the therapy delivery is complete. Oncethe current therapy session is complete, the process proceeds to block1016. If at decision block 1012 the AMD 600 determines that therapy isnot currently being administered, the process proceeds to block 1016.The block 1012 may include one or more of the embodiments previouslydescribed with respect to the block 910.

At block 1016 the AMD 600 determines an amount of time until or a timeremaining until the next therapy session. In some cases, the AMD 600 maydetermine a condition of the subject based at least in part on ameasurement of a physiological parameter of the subject and determinethe next therapy delivery time based at least in part on the conditionof the subject. In some cases, the AMD 600 may determine the nexttherapy delivery time based at least in part on a therapy deliveryschedule stored at the AMD 600. The block 1016 may include one or moreof the embodiments previously described with respect to the block 914.

At decision block 1018 the AMD 600 determines whether the time leftuntil the next therapy delivery session is longer than a set thresholdtime or threshold time period. The decision block 1018 may include oneor more of the embodiments described with respect to the block 916. Ifat decision block 1018 it is determined that the time left until thenext therapy delivery session is longer than the set threshold time orthreshold time period, the process moves to block 1020 where theexecution of the second application will be initiated and the executionof the first application will be halted. At block 1020 the AMD 600 mayswitch the control of the AMD 600 to the second application. In someexamples, at block 1020 the AMD 600 may switch control of one or morefeatures of the AMD 600 from the first application to the secondapplication. In some such examples, one or more features of AMD 600 mayremain under control of the first application. In some examples, atleast the control of the therapy delivery module 606 of the AMD 600 maybe switched to the second application.

If at decision block 1018 it is determined that the time left until thenext therapy delivery session is shorter than the set threshold time,the process returns to block 1016 where the AMD 600 determines the nexttherapy delivery time. In some examples, the set threshold time may bedetermined by the CCM at least partly based on the time required toexecute the second application and halt the first application. In someexamples, the set threshold time may be received from a host computingsystem. In some examples, the estimated next therapy delivery time maybe compared to a set threshold time to determine whether the switchingfrom the first application to the second application can be performedwithout interfering with the next therapy delivery session.

In some embodiments, the AMD 600 may receive an indication that a thirdapplication is available for download. In some such examples the AMD 600may download the third application using the steps and proceduresdescribed with respect to the flow diagram in FIG. 8 and switch thecontrol of the AMD from the second application to the third applicationusing the steps and procedures described with respect to the flowdiagram in FIG. 10, starting from block 1002. In some examples, thethird application may be an update to the first application thataddresses an application-fault of the first or second application.

In some examples, once it is verified that an uncorrupted copy of theupdate for an application is successfully downloaded at block 902 or1002, the AMD 600 may notify the user (e.g., via a user interface) andwait for a trigger signal. Once the trigger has been received, the AMD600 initiates the installation process of the downloaded copy of theapplication update without interrupting therapy provided by theambulatory AMD 600. In some examples, once a new application isinstalled, approval of the subject or user may be required to upgrade anapplication. In these examples, once the approval is received theapplication update may be transferred to the main memory where it isexecuted and take control of the AMD 600 or a subset of operations inthe AMD 600. In some cases, before an application update is installed orbefore the control of the AMD 600 is switched to a newly installedapplication update, the current configuration of the AMD 600 may bestored in a memory of the AMD 600.

In some embodiments, the performance of an application update may betested before switching control of the AMD 600 to the applicationupdate. FIG. 11 illustrates an example method that may be used for oneor more such embodiments. The AMD may identify and download a secondapplication that is an update for a first application and that has beendownloaded using the process described with reference to FIG. 8. In someembodiments, the second application may be a new version of the firstapplication, a patch to the first application, or a set of one or moreadditional features for the first application. In some cases, the firstapplication can be a first version of the first application having afirst feature set or a second version of the first application having asecond feature set. In some examples, the first feature set may bedifferent from the second feature set, but may include at least onefeature included in the second feature set. In some examples, the AMD600 may download a particular version of the second application thatcorresponds to a particular version of the first application. Forexample, there may be two versions of the first application. A firstversion of the first application may be for a mono-hormonal pump thatcan administer insulin. A second version of the first application may befor a bi-hormonal pump that can administer insulin and acounter-regulatory agent. When the AMD 600 is configured as amono-hormonal medicament pump, the AMD 600 may download and/or install afirst version of the second application that corresponds to the firstversion of the first application. On the other hand, when the AMD 600 isconfigured as a bi-hormonal medicament pump, the AMD 600 may downloadand/or install a second version of the second application thatcorresponds to the second version of the first application. Thus,depending on which version of the first application is installed on theAMD 600, the AMD 600 may download and/or install a first version of thesecond application corresponding to the first version of the firstapplication or a second version of the second application correspondingto the second version of the first application. Although described astwo versions, it should be understood that more versions of theapplication may exist, and that the AMD 600 may install an update basedon the installed version of the application. Moreover, in some cases,the AMD 600 may install a different version of an application to enableor unlock new features (or in some cases to remove a feature, such as ifa fault is discovered with a particular feature).

At block 1102 the AMD 600 verifies that an uncorrupted copy of thesecond application is successfully downloaded. In some embodiments,block 1102 may include one or more of the embodiments previouslydescribed with respect to block 808 in FIG. 8 and/or block 902 in FIG.9. Next, at block 1104, the AMD 600 may install the downloaded copy ofthe second application without interrupting therapy provided by the AMD600 to the subject. In some cases, the second application may beinstalled in a separate memory space of a memory of the AMD 600 than alocation of the first application within the memory.

At block 1106 the AMD 600 executes the installed second applicationwithout interrupting the execution of the first application andtherefore, the therapy that may be provided by the ambulatory medicaldevice to the subject using the first application. In some examples, thesecond application update may be installed to a separate portion of astorage space (e.g., a separate execution space or separate memory) fromthe portion where the first application is installed and is beingexecuted. In some examples, the AMD 600 may execute the secondapplication using a separate processor than a processor executing thefirst application. In some examples, the AMD 600 may execute the secondapplication in a separate execution space than an execution space usedto execute the first application. In some examples, the firstapplication may be executed by a first controller and the secondapplication is executed by a second controller.

At block 1108, the AMD 600 may determine that a minimum set of operatingconditions are satisfied by the second application. In some embodiments,the minimum set of operating conditions may relate to maintainingtherapy provided by the ambulatory medical device to the subject. Insome embodiments examples, determining a minimum set of operatingcondition are satisfied may comprise determining that the AMD 600 is notcurrently administering a medicament or has less than a thresholdprobability of administering a medicament within a threshold period oftime, or has recently administered a medicament within a thresholdperiod of time.

At the decision block 1110, the AMD 600 determines whether the secondapplication satisfies the minimum set of operating parameters. If it isdetermined that the minimum set of operating conditions are notsatisfied by the second application, the AMD 600 may wait a period oftime and then repeat the process associated with the decision block1110. In some cases, if the second application fails to satisfy theminimum set of operating conditions, the AMD 600 may proceed to block1112 where it waits for an indication that a third application isavailable and repeats the procedure described above to evaluate theperformance of the third application. If at decision block 1110 the AMD600 determines that the minimum set of operating conditions aresatisfied by the second application, at decision block 1114 the AMD maycheck whether therapy is being delivered to the subject (e.g., amedicament is being administered to the subject). If it is determinedthat currently no therapy is delivered to a subject, at block 1118, theAMD 600 may switch the control of the AMD from the first application tothe second application. If at block 1114 it is determined that therapyis currently being provided to the subject, the process proceeds toblock 1116 where the AMD 600 waits until the therapy delivery session iscompleted and then process proceeds to block 1118 where the AMD 600switches the control of the AMD 600 from the first application to thesecond application. In some embodiments, the AMD 600 may switch thecontrol of the AMD 600 from the first application to the secondapplication by generating a dose control signal using the secondapplication. In some examples, using the second application, the AMD 600may determine doses of a medicament to be infused into the subject forthe purpose of controlling blood glucose of the subject based at leastin part on a glucose level signal obtained from a blood glucose sensor.The doses of the medicament may be determined automatically and/orautonomously. Subsequently, the AMD 600 may provide a dose controlsignal that is generated using the second application to a medicamentdelivery interface (e.g., medicament delivery interface of the therapydelivery module 606) that infuses the medicament into the subject.

In some cases, the AMD may be updated (or downgraded) to add (or remove)features from the ambulatory medical device. For example, the ambulatorymedical device may be or may be configured as a mono-hormonal medicamentpump that provides a single medicament, such as providing only insulintherapy. At some point in time, the ambulatory medical device may beupgraded to include bi-hormonal control (e.g., to provide both insulintherapy and counter-regulatory agent (e.g., Glucagon) therapy). Theupgrade may be based on newly available features and/or based on adecision by a user to purchase or otherwise obtain additional features.Similarly, a user may opt to downgrade therapy from bi-hormonal toinsulin-only therapy. Alternatively, the upgrade or downgrade may bemade based on the availability of medicament. In some examples, a firstupdate can be a first application version comprising a first feature set(e.g., providing Insulin therapy) and a second update can be a secondapplication version comprising a second feature set (e.g., provide bothInsulin therapy and Glucagon therapy). In some such examples, the firstfeature set may comprise a subset of the second feature set. In someexamples, the first feature set may comprise a partially overlapping setof features with the second feature set.

In some examples, a computer-implemented method may be used by the AMD600 in order to detect, download and install an update to an applicationexecuting on the AMD 600 that comprises one of a first applicationversion comprising a first feature set or a second application versioncomprising a second feature set. In some examples, the first feature setmay comprise a partially overlapping set of features with the secondfeature set. The AMD 600 may receive an indication of availability ofthe application update, download the application update and verify thatan uncorrupted image of the application update is successfullydownloaded (e.g., using the procedure described above with reference toFIG. 8). Next, the AMD 600 may initiate the installation process of theapplication update image without interrupting the execution of theapplication. In some examples, the indication received by the AMD 600(block 802 in FIG. 8), may include information about an applicationupdate being an update to the first application version or to the secondapplication version. In some such examples, the AMD 600 may determinethe version of the application update and download the applicationupdate image based on the determined version.

In some embodiments, any downloaded application update may be installedto a separate portion of a storage space (e.g., a separate executionspace or separate memory) from a currently executing version of theapplication. Once installation of the application is complete and theapplication is verified as being successfully installed, the activeversion of the application can be switched. For example, control of AMD600 can be provided to the updated application, the previously executingapplication can be ceased or halted. The old application can then beremoved or kept as backup. Determining when to switch with the activeversion of the application may follow a similar process as previouslydescribed for identifying a next therapy delivery time and selecting atime to switch active versions of the application when there will not bean interruption to the therapy provided by the AMD 600.

In some embodiments, the AMD 600 may be configured to store multipleinstances of an application (e.g., AMD control software or a controlapplication for the ambulatory medical device). For example, the AMD 600may have a current, or first, version of the application that isinstalled in a first memory location (e.g., in the main memory 616) andis executing to, for example, control therapy provided to a subject.Further, the ambulatory medical device may include an updated, or secondversion of the application installed in a second memory location (e.g.,in the main memory 616). The update of the second version may have beendownloaded and installed (e.g., in a prior to detection of the fault).In such embodiments, when a fault is detected during execution of thefirst version of the application, AMD 600 may initiate the execution ofthe second version of the application and then switch control of the AMD600 to the second version of the application to maintain therapy to thesubject.

In some examples, a second application update or a second version of theapplication installed on the AMD 600 may be older than the firstapplication or the first version of the application. In some cases, thesecond or older version of the application may be a version of theapplication that has a track record of stability and reliability. Incontrast, the first application, or newer application, may have beenreleased too recently to determine whether it will be reliable orfunction as desired. In some such examples, the AMD 600 may revert tothe second version of the application if a fault is detected in thefirst version of the application.

In some cases, the AMD 600 may revert to an older stable version of theapplication until a third version of the application that corrects theapplication fault in the first version of the application is available.FIG. 12 presents a flowchart related to an embodiment of a process ofswitching from an application with a fault to a known reliable versionof the application until the application fault in the originalapplication can be patched in an application update (e.g., a thirdversion of the application). At block 1202, the AMD 600 detects anapplication-fault while executing the first version of the application.In some examples, the AMD 600 may transmit an indication of theapplication-fault to a computing device of a manufacturer or amaintenance service of the ambulatory medical device. In some examples,the AMD 600 may send an alert to a user indicating that anapplication-fault has occurred. Sending the alert to the user mayinclude outputting an alert on a display, transmitting an alert to anaccount or device of the user, generating an audio alert or a visualalert, or any other type of alert.

At block 1204, the AMD 600 may switch the control of the AMD 600 to asecond version of the application. This second version of theapplication may be downloaded from a host computing system.Alternatively, or in addition, the second version of the application maybe a standby or backup version of the application that is stored at theAMD 600. This standby or backup version of the application may be anolder version of the application that has been determined to be stableand/or fault free or associated with less than a threshold percentage offaults based on a history of use and/or testing. At block 1206 the AMD600 may establish a communication connection with a host computingsystem configured to host a third application update and download thethird application update (block 1208). The third version of theapplication update may be a new version, a version prior to the firstversion, an update to the first application that addresses the detectedapplication-fault or an older version that satisfies the conditions tobe classified as a “safe version” (e.g., less than a threshold number orrate of faults over a minimum period of time). The second version(installed in the device) may control the AMD while the third version isbeing downloaded and installed 1208 without interrupting the therapy.Once the AMD verifies that the third version has been downloaded and thedownloaded copy is uncorrupted, the AMD 600 may initiate theinstallation process of the downloaded copy of the third application andswitch control of the AMD 600 form the second version of the applicationto the third version of the application (block 1210) withoutinterrupting therapy delivery to the subject by the AMD. In variousembodiments the operation and processes described with respect to FIG.12 may be performed by the control computing module (CMM) 610 of the AMD600.

In yet other embodiments, a “safe version” of the application may havebeen installed on the AMD 600 prior to detection of a fault. The safeversion, or safe copy, of the application may include a version of theapplication that has been used by instances of the ambulatory medicaldevice for more than a threshold period of time and has experienced lessthan a threshold number of faults. For example, the safe version of theapplication may be a two-year old version of the application that hasdemonstrably had less than a threshold number of faults occur over theperiod of two years. This safe version of the application may have lessfeatures than the first or second version of the application. However,when a fault is detected during execution of the first or second versionof the application, the AMD 600 may switch control of the device to thesafe version of the application to maintain therapy to the subject.

In some cases, if a fault is detected during the installation orexecution of an updated version of the application, the AMD 600 mayrevert to the current version or a safe version installed on the AMD600.

In some embodiments, the AMD 600 may be triggered to establish acommunication connection with the host computing system and search forthe second version of an application once a fault is detected duringexecution of the first version of the application. In these examples,the AMD may revert to the safe version (installed in the device) whiledownloading and installing the second version without interrupting thetherapy.

FIG. 13 is a flow diagram illustrating yet another example of a methodof responding to a fault detection by the AMD 600. In this example, oncean application-fault is detected during execution of the first versionof an application at block 1302, at block 1304 the AMD 600 may access asecond version of the application in the main memory 616 or the storageof the AMD 600. If it is determined that the second version has alreadybeen downloaded, at block 1306 the AMD 600 may determine whether thesecond version of the application is installed in a memory location andwhether it is ready to be executed. If at block 1306 it is determinedthat the second version of the application is installed, at block 1308the AMD 600 may switch the control of the AMD 600 to the second versionof the application. If at block 1306, the AMD 600 determines that thesecond version exists in the memory but it is not installed, the processproceeds to block 1316 where the control of the AMD 600 is switched to asafe version 1316 that may be already installed. At block 1318, eth AMD600 may initiate the installation of the second version. Once theinstallation of the second version is complete, the process may proceedto block 1308 where the AMD 600 may switch control of the AMD 600 fromthe safe version of the application to the second version of theapplication. In some embodiments, after the control of the AMD 600 isswitched to the second version of the application (at block 1308), atblock 1310 the AMD 600 may search for a third version of the applicationthat may be an update to the previously downloaded second version. If athird version is found, at block 1312 the AMD 600 may download andinstall the third version of the application and switch the control ofthe AMD 600 to the third version (block 1314). If at block 1304, if theAMD 600 cannot find a second version of the application in a memory orstorage location, it will switch the control of the AMD 600 to a safeversion of the application (block 1320) that may be installed in amemory location (e.g., in the main memory or in the storage) and searchfor a third version of the application (block 1310). If a third versionis found, the system may download and install the third version of theapplication (block 1312) and switch the control of the device to thethird version (block 1314).

In some embodiments, when an application-fault of an applicationexecuting on the AMD 600 is detected, the AMD 600 may transmit anindication of the application-fault to the host computing system of amanufacturer or maintenance service of the ambulatory medical device. Insome other embodiments, the AMD 600 may notify the user when anapplication-fault occurs through a user interface of the AMD 600 or userinterface communicating with the AMD 600.

In some of the examples mentioned above, once a software update has beeninstalled, the AMD 600 may offer the option to save the user'sconfiguration or profile data. For example, the software update shouldnot change the patient state data (patient weight, CGMid, meal sizeequals volume of meal).

In various examples, the application update may be pushed to a dedicatedmemory location in CCM 610 of the AMD 600 prior to transfer toexecutable memory location (e.g., the main memory) for security checks.In some examples, a healthcare provider system or the AMD may check theversion of application update against the current version. In some suchexamples, an alert may be sent to the user or the subject withinformation regarding the difference between the current application andthe application update.

Direct Network-Connected Medical Device Communication and Remote Viewing

An ambulatory medical device (AMD), such as an ambulatory medicamentdevice (e.g., blood glucose control system, an insulin pump (e.g., amono-hormonal pump), or a bi-hormonal pump that includes insulin and acounter-regulatory agent), a pacemaker, or any type of medical devicethat may be connected to a subject to provide therapy to the subject,can generate a significant amount of data related to therapy provided toa subject (therapy data). This therapy data may be useful for thesubject, a healthcare provider, or other users (e.g., parent orguardian) to actively manage the subject's health condition. Forexample, the therapy data may be useful to determine whether amodification to therapy may be desirable or to confirm that intendedtherapy is being delivered at the right time. In some cases, the therapydata may be used to generate alerts about the health condition of thesubject when therapy data indicates that immediate or urgent attentionis needed with regards to the subject's health condition.

Various aspects of accessing the therapy data or other types of datastored in a memory of the AMD needs proper management in order toprovide uninterrupted, secure and easy access to authorized users. Asdescribed above, the procedures and tasks performed by an AMD, includingthose associated with data transfer management, may be associated withcertain computer-executable instructions stored in and executed by thecontrol and computing module (CCM) 610 of the AMD 600. As such,different AMD configurations used for various data transfer managementtasks, may be different instructions executed by the CCM 610 of the AMD600.

Accessing the data from the AMD can be problematic in some cases. Forexample, accessing the data may require a user to connect the AMD to acomputer to upload the data. This places a burden on the user toremember to connect the AMD. Further, during the period when the deviceis connected to the computer, the subject may not be receiving therapyfrom the ambulatory medical device. In some cases, the subject may notbe capable of connecting the device to the computer (e.g., when the AMDis not within range of the local device) and may not have someoneavailable to assist the subject. Thus, a direct end-to-end connection toa computing system that (e.g., computing system of a healthcareprovider) can safely share data (e.g., therapy data) with authorizedusers may facilitate data management and access.

FIG. 14 is a block diagram illustrating an example network configurationwherein the AMD 1402 is directly connected to a computing system 1404.The computing system 1404 may be part of a networked computingenvironment 1408 (e.g., a data center), or a cloud computing system(e.g., a cloud server) of a cloud service provider. The computing system1404 may include one or more non-transitional memories and one or morehardware processors configured to execute the computer-executableinstructions stored in one or more non-transitory memories. In some suchexamples, the procedures performed by the computing system 1404 may beassociated with the execution of certain computer-executableinstructions stored in a memory of the computing system 1404 by ahardware processor of the computing system 1404.

In some examples, the direct end-to-end data connection may be supportedby one or more transceivers (e.g., wireless transceivers) in AMD'scommunication module 602. For example, a direct connection may beestablished between the AMD 1402 and the computing system 1404 over awide area network (e.g., a cellular network) without using anintermediary system. The connection may use one or more wirelessstandards and technologies (e.g., 4G, 5G and the like). In someexamples, a transceiver of the AMD may support communication viacommunication standards, including but not limited to, low power widearea network (LPWAN), Narrowband Long-Term Evolution (NB-LTE),Narrowband Internet-of-Things (NB-IoT), Long-Term Evolution Machine TypeCommunication (LTE-MTC) and the like. In some cases, the transceiver isalways on, and in some cases, the transceiver may be activated when adata transfer is scheduled, requested or activated. In some cases, thecapability of the AMD 1402 to communicate with the computing system 1404may be activated during manufacture or before providing the device to asubject.

In some cases, the subject or a user establishes or initiates the directend-to-end data connection with the computing system 1404. For example,the subject may interact with a user interface to cause the AMD 1402 tocommunicate with the cloud computing system. In some cases, the directend-to-end data connection may be initiated or established withoutaction by the subject or the user. For example, the direct end-to-enddata connection may occur automatically at particular times or when theAMD 1402 is in particular locations. This automatic connection may occurusing information supplied to the AMD 1402 at a time of manufacture,shipment, sale, or prescription to the subject. Further, in some cases,the AMD 1402 can communicate with the computing system 1404 withouthaving access to a WiFi network or a local area network (LAN). Forexample, the AMD 1402 may communicate using a cellular or other widearea network. Further, in some cases, the interaction by the user withthe AMD 1402 may be relatively minimal or simple compared to traditionalnetwork communication. For example, a user may push a single button(e.g., an “upload” button) to trigger establishing of a connection withthe cloud computing system 1404 and causing data to be provided from theAMD 1402 to the cloud computing system 1404.

In some cases, the AMD 1402 may be turned on and paired with thewireless wide area network (e.g., a cellular network) at the time ofmanufacture, or prior to being provided to a subject. Further, the AMD1402 may be authenticated with the networked-computing environment aspart of the manufacturing process

Further, establishing the direct end-to-end data connection may includedetermining that the AMD 1402 is permitted to communicate with thecomputing system 1404 based at least in part on the device identifier.

In some implementations, establishing the direct end-to-end dataconnection may include determining that the AMD 1402 is permitted tocommunicate with the computing system 1404 based at least in part on adevice identifier associated with the AMD 1402. The device identifiermay be a unique identifier specific to the AMD 1402. The deviceidentifier may include or may be based on one or more of an InternetProtocol (IP) address, a Media Access Control (MAC) address, a serialnumber, or a subject identifier of a subject that receives therapy fromthe ambulatory medical device.

Further, establishing the direct end-to-end data connection may includedetermining that the AMD 1402 is permitted to communicate with thecomputing system 1404 based at least in part on the device identifier.The device identifier may be initially provided to thenetworked-computing environment prior to provisioning of the AMD 1402 tothe subject. For example, the device identifier may be initiallyprovided to the computing system 1404 or the networked-computingenvironment as part of a manufacturing process for manufacturing the AMD1402.

The AMD 1402 may be configured to at least identify a computing system(or a cloud server) 1404 of a networked-computing environment 1408(e.g., a cloud network, a data storage services provider, or anapplication services provider, etc.) based on a whitelist, or approvedlist, of one or more approved computing systems. The whitelist may bestored in a memory of the AMD 1402 (e.g., a memory in the control andcomputing module of the AMD). Further, the whitelist may be configuredduring manufacture of the AMD 1402. For example, the whitelist may beconfigured with connection information to establish communication withone or more computing systems of a networked-computing environment.Further, the AMD 1402 may be configured to at least obtain an address ofthe computing system 1404 from the whitelist and to establish a directend-to-end data connection to the computing system 1404 of thenetworked-computing environment via a wireless wide area network usingthe address. The whitelist may include unique identifiers, such as MACaddresses or static IP addresses that are associated with computingsystem 1404 s of the cloud services provider. The whitelist may includeone or more of the embodiments previously described above with respectto FIG. 7.

To enhance security, the AMD 1402 may use a whitelist that identifiesvia a unique identifier (e.g., via an IP address, a MAC address, or aURL), permitted cloud servers or computing systems in the networkedcomputing environment. Further, the cloud computing systems (or cloudservers) 1404 may have a whitelist that uses unique identifiers tospecify AMD 1402 and/or other computing systems (e.g., remote displaysystems) that are permitted to communicate with the computing systems1404 of the networked computing system.

When a device communicates data over a network, there is generally arisk of a data breach. To reduce or prevent a data breach, the AMD 1402may communicate with a computing system, such as a computing node in anetworked computing environment or a cloud network, based on a securedata transmission method. For example, the AMD 1402 may encrypt all datausing an asymmetric key pair. In some cases, the AMD 1402 may establisha shared secret with the computing system as described below.

In some cases, the therapy data may be encrypted before beingtransferred to the computing system 1404. To enable encryption, the AMD1402 may have a public key and a private key stored in memory permittingthe AMD 1402 to encrypt data transmitted by the AMD 1402 to thecomputing system 1404. In some cases, the AMD 1402 may generate thepublic key based at least in part on the private key. The encryptionkey(s) may be stored in a protected area of memory or in separate memorythat is separate from the application memory. In some cases, the AMD1402 may transmit a public key to the computing system 1404. Using thepublic key, the computing system 1404 can encrypt data to transmit tothe AMD 1402. The AMD 1402 can use its private key to decrypt the data,such as an analysis of therapy data generated by the computing system1404 in response to received therapy data from the AMD 1402. Similarly,the computing system 1404 may provide a public key to the AMD 1402.Using the public key, the AMD 1402 can encrypt therapy data (and/ordevice data) to be transmitted to the computing system 1404 for storage,analysis, presentation to a user, reordering medicament, determining astatus of the AMD 1402 and/or subject, or any other purpose or processthat can be performed responsive to the therapy data. The computingsystem 1404 may use its private key to decrypt the encrypted data toobtain access to the therapy data (and/or device data).

In some cases, the public key may timeout and a new public key may beobtained from the AMD 1402 (or from the computing system 1404) tofacilitate encrypting and/or decrypting subsequent communications fromthe AMD 1402. In some cases, the public key may be associated with atime-to-live (TTL) value. In some such cases, the public key may timeoutand a new public key may be obtained from the AMD 1402 to facilitateencrypting and/or decrypting subsequent communications from the AMD1402.

Moreover, the secure data transmission may include generating a sharedsecret based at least in part on a public or common piece of data and aprivate key. In some cases, the public or shared piece of data can be apublic key. In some such cases, therapy or device data may be encryptedor decrypted using the shared secret. In some examples, the sharedsecret may be established using a public key exchange algorithm (e.g.,Diffie-Hellman key exchange algorithm).

In some cases, the computing system 1404 may be configured to transfer,or receive, the data after receiving a request to transfer data (e.g.,therapy data or device status data) stored on the AMD 1402 to thecomputing system 1404 over the direct end-to-end data connection, forexample, via the wireless wide area network. The request may include adevice identifier associated with the AMD 1402. Responsive to receivingthe request to transfer data stored on the AMD 1402 to the computingsystem 1404, the computing system 1404 may be configured to receive thedata, via the direct end-to-end data connection. In some cases, thecomputing system 1404 may open or provide a port to the AMD 1402enabling the AMD 1402 to connect to the identified port and transferdata to the computing system 1404 via the identified port. Further,transferring data may include the computing system 1404 sending anacknowledgement packet that the transfer request is approved orpermitted. The AMD 1402 may transfer the data in response to approval bythe computing system 1404 to transfer the data. In some cases, theapproval may be based on the computing system 1404 confirming useraccount information (e.g., such as a username and/or password).

In some examples, once a connection is established and the therapy datais transferred to the computing system 1404, the computing system 1404may analyze the therapy data received from the AMD 1402 and generate atherapy report. The therapy report may include data relating to thesubject's disease, treatment by the AMD 1402, anonymized comparisonswith other subjects, statistical data relating to the subject'streatment, statistical data relating to other subjects' disease ordisease management, and the like. For example, the therapy report maydetermine whether the subject is maintaining blood glucose levels onaverage or whether control parameter settings for the AMD 1402 aresimilar to an average subject with similar physiological characteristicsas the subject associated with the AMD 1402. Further, the computingsystem 1404 may detect an alarm condition, based on therapy dataanalysis, and generate an alarm that may be provided to the subject,authorized user (e.g., healthcare provider). In some cases, the therapydata may trigger an automatic response by the computing system 1404. Forexample, the AMD 1402 may determine that a medicament or anotherdisposable is running low based on the received data and mayautomatically reorder the medicament or the disposable.

In some cases, the computing system 1404 may periodically receive data(e.g., therapy data) from the AMD 1402 based on a regular schedule.Alternatively, or in addition, the data may be received in response to acommand or when the ambulatory medical device determines it is within acertain location. For example, when the AMD 1402 determines it is withina subject's home or at a healthcare provider's office, the AMD 1402 maytransmit the data to the computing system 1404. The AMD 1402 maydetermine its location based at least in part on a connection to a localarea network connection or a geolocation signal, such as from a globalpositioning system (GPS). In some implementations, additional encrypteddata is received from the AMD 1402 on an intermittent basis.Alternatively, or in addition, additional encrypted data may be receivedfrom the AMD 1402 basis for at least a time period. The AMD 1402 may beconfigured to transmit data as it is generated, or shortly thereafter,(e.g., in real or near real-time (e.g., within a few millisecond,seconds, or minutes of the data being generated)), or in bulk atspecified periods of time. Transmitting the data in bulk at particulartime periods may extend battery life, but may provide for lessup-to-date analysis. In cases where bulk transfer of data occurs atparticular time periods, a user may request a data transfer at anunscheduled time, such as when the user is attending a doctor'sappointment or the subject is being attended to by emergency servicespersonnel during an emergency. Data can be made available on-demand bykeeping the transceiver always on, which may consume more power comparedto keeping the transceiver in sleep mode when not in use. Alternatively,the transceiver may be activated when a data transfer operation isrequested. Thus, the scheduling of data transfer may be balanced basedwith other considerations, such as: (1) power consumption and/or (2) aneed or desire to share information with authorized users or systems.

In some cases, the computing system 1404 may be used as a backup for theAMD 1402. For example, the AMD 1402 can backup data to the computingsystem 1404 every night, when it is charging, or when it is in proximityto home or a physician's office (e.g., when the subject is in thewaiting room at the physician's office, the device may upload data thatthe physician can access to treat the subject's disease). Moreover, ifthe AMD 1402 is replaced (e.g., for a new model or to replace a damageddevice), the device can automatically synchronize with the computingsystem 1404 to obtain subject-specific configuration or therapy controldata.

Therapy Data and Therapy Report

In some examples, the therapy data comprises dose or dosage datacorresponding to one or more doses of medicament provided by the AMD1402 to the subject. Further, the therapy data may comprise subject datacorresponding to a medical or physiological state of the subject asdetermined by the AMD 1402 device (e.g., using one or more biomedicalsensors 1405).

In some examples, the data provided to computing system 1404 may includeany type of data that may be measured or obtained by the AMD 1402 andmay include a record of therapy provided by the AMD 1402. For example,the data may include a time that therapy was provided, an amount ofmedicament provided as part of the therapy, a measure of one or morevital signs of the subject, a measure of blood glucose levels (e.g.,measured blood glucose level) at different times for the subject, alocation of the subject, and the like.

In some cases, the therapy data may be used to track the use ofdisposables, such as insulin or other medicament, or insulin injectionsite kits. In some cases, the computing system 1404 may automaticallyorder or reorder disposables at a particular time based on tracking theuse of the disposable. Alternatively, or in addition, the reordering ofthe disposables may be initiated or performed from the AMD 1402 (e.g.,via a wireless wide area network or via a local connection through aseparate electronic device).

In some cases, the data transferred to the computing systems maycomprise operation data corresponding to operation of the AMD 1402.Alternatively, or in addition, the data may further comprise error datacorresponding to an error in operation of the AMD 1402.

In some examples, the data, therapy data, and/or the therapy report maybe stored in a memory of the computing system 1404 and/or at a storageof the networked-computing environment.

In some cases, the method may include converting the therapy data fromone format to another format. For example, the method may includeconverting the therapy data from a format used to store and/or presentdata on AMD 1402 to a format that can be stored or processed on thecomputing system 1404. In some cases, the therapy data is converted froma machine-readable format to a human-readable format. The data may bestored in a more easily interpreted format that can be understood bydifferent types of users. For example, the data may be presented in oneformat for a healthcare provider (e.g., sensor readings), a simplifiedformat for a subject or parent of a subject, or other data formats fordisplaying data to different types of users. In some cases, the data maybe presented in different formats depending on the maturity of thesubject. For example, simplified data may be presented to a pre-teenchild, while more detailed data may be presented to a teenager, and yetmore detailed information may be presented to an adult.

In some examples, the therapy data collected from different AMDsassociated with a plurality of subjects may be aggregated for a group ofsubjects. The aggregation may be based on any factor or commonalityamong the plurality of subjects. For example, the therapy data may beaggregated based on an association with an institution or organization(e.g., a clinic, an insurance company, and the like), age, gender,nationality, ethnicity, job, stress factors, recency of being diagnosedwith or acquiring the disease, location, diet (e.g., vegetarian, vegan,omnivore, etc.), or any other factor that may link subjects.Advantageously, aggregating data based on particular demographics and/orphysiological characteristics may be useful for determining how to bestcare for a particular subject within a group, how to improve care for aset of subjects, to learn more about how diabetes affects certain typesof subjects, and the like.

In some examples, a therapy report based at least in part on the therapydata may be generated by the computing system 1404. The therapy reportmay comprise time-series therapy data relating to the therapy deliveredby the ambulatory medical device over a particular time period.

In some examples, the therapy report may be sent to the AMD 1402. Incases where the AMD 1402 includes a display, such as, but not limitedto, a touchscreen display, the subject or other user may review thetherapy report via the display of the AMD 1402. Alternatively, or inaddition, a user may view the therapy report on the display of anotherelectronic device that is in communication with the computing system1404 and is authorized to access the therapy report.

In some cases, the ambulatory device data and/or data generated by thecomputing system 1404 based on the ambulatory device data can be viewedon a secondary display system from the computing system 1404. Forexample, a clinician or parent can access the data from their personaldevice. The communication between the computing systems and the viewingdevice may be encrypted. Moreover, permission for sharing of end userdata with a ‘follower’ (e.g., family member) or clinician may be grantedor controlled by the end user (e.g., the subject or a guardian).

An association between a subject, a clinic, and/or an ambulatory medicaldevice may be performed by association of a device serial number of theambulatory medical device with the subject and/or clinic. Further, auser (e.g., a subject, clinician, or parent) can access therapeuticrecommendations through the cloud in case either the ambulatory medicaldevice (e.g., an insulin pump) or the CGM sensor fails to function.

In some cases, the computing system 1404 may be configured to at leastreceive a request from one or more display systems 1410 that areseparate from the networked computing environment to access the therapyreport, therapy data or other data received by or stored in the AMD. Insome cases, the display system may be a computing system of a medicalpractitioner 1414 (e.g., such as a doctor, nurse, physician's assistant,etc.), a guardian of the subject 1416 (e.g., subject's parents), anauthorized user 1418 (e.g., a user authorized by the subject such asspouse, relative, friend, and the like), a healthcare provider 1420, ora device of the subject 1412 (e.g., cell phone, personal computer,tablet and the like). In some cases, the display system 1410 can be theAMD.

In some examples, the display system can be a therapy data managementsystem that analyses therapy data associated with a specific type ofhealth problem (e.g., data associated with managing diabetes) andprovides information derived from the therapy data to the subject or anauthorized user to monitor and manage the corresponding ailment.

In some examples, the request to access the therapy data, therapyreport, or other data may comprise an account identifier associated witha user that generated the request. In some examples, the accountidentifier may comprise a unique identifier associated with the subject.Alternatively, or in addition, the account identifier comprises a uniqueidentifier associated with a user that is authorized to access thetherapy report. The user may or may not be the subject. In some aspectsof the present disclosure, the method may further include associatingthe therapy data with the account identifier at a storage of thenetworked-computing environment. Further, the computing system 1404 maybe configured to determine whether an account associated with theaccount identifier is permitted to view the therapy report. In someexamples, account permissions may be granted and/or modified by thesubject. For example, the subject can access an account at a networkedcomputing environment 1408, for example, a cloud network provided by acloud service provider associated with the subject, and provide one ormore identifiers associated with one or more other users to give thempermission to access the subject's therapy data or report stored on thecomputing system 1404.

Responsive to determining that the account is permitted to view thetherapy report, the computing system 1404 may transmit the therapyreport to the display system over an encrypted communication channel. Aspreviously explained, the encrypted communication channel may be createdby using asymmetric key pairs to encrypt the data transmitted. Thus, thecomputing system 1404 may obtain a public key from the target system(e.g., the display system, AMD 1402, or other computing system that isto receive the therapy report). The computing system 1404 may encryptthe therapy report with the received public key and transmit it to thetarget system, which may use its private key corresponding to the publickey to decrypt the therapy report. Alternatively, or in addition, ashared secret may be determined for the commuting system 1404 and thetarget system. The shared secret may be used to encrypt the therapyreport.

In some cases, the method may include receiving an identity oridentification information of one or more users that are authorized toaccess therapy data stored at the networked-computing environment. Forexample, a user or subject may authorize a clinician or other healthcareprovider, a parent or guardian, or other users that the subject desiresto have access to the therapy data. The identity information of the oneor more users may include any type of information that may identify theuser or enable the user to be authenticated. For example, the identityinformation may include a name, unique identifier (e.g., social securitynumber), an email, an address, a phone number, account information forthe user at the networked-computing environment, or any otheridentifying information.

FIG. 15A is a flow diagram that illustrates an example method that maybe used by computing system 1404, to generate and share a therapy reportbased on therapy data received from an AMD 1402. In some examples, theAMD 1402 may encrypt the therapy data using a public key and/or a sharedsecret. The encrypted therapy data may be provided to another computingsystem, such as a computing system of a clinician or a computing systemof a networked computing environment (e.g., a computing system at a datacenter of a cloud computing network).

At block 1502, the computing system 1404 may establish a directend-to-end data connection to the AMD 1402, for example, via a wirelesswide area network (WAN) using a Narrowband Long-Term Evolution (NB-LTE)transceiver included in the AMD 1402. The direct end-to-end dataconnection may be initiated by the computing system 1404 or by the AMD1402. The direct end-to-end connection may be a connection between theAMD 1402 and the computing system 1404 that omits an intermediarycomputing system (e.g., a local computing system such as a laptop orsmartphone). However, the direct end-to-end connection may, in somecases, include intermediary connection hardware, such as a router, basestation, or switch.

Once a direct end-to-end data connection between the AMD 1402 and thecomputing system 1404 is established, at block 1504 the computing system1404 may receive a request from the AMD 1402 to transfer data (e.g.,therapy data) stored on the AMD 1402 to the computing system 1404 overthe direct end-to-end data connection. Alternatively, the computingsystem 1404 may request the data (e.g., therapy data) from the AMD 1402.Regardless of whether the AMD 1402 or the computing system 1404 requeststhe data transfer, the data transfer may be requested as part of theprocesses of establishing the direct end-to-end data connection or maybe requested after the direct end-to-end data connection is established.

At block 1506, the computing system 1404 and the AMD 1402 may exchangepublic keys. In some cases, the public key exchange may occur as part ofestablishing the direct end-to-end data connection so as to establish asecure or encrypted channel. In some cases, the public key exchange mayoccur after establishing the connection to create a secure data channel.In some cases, one of the computing systems 1404 or the AMD 1402 mayprovide a public key, while the other device may not. In some suchcases, only one of the devices may provide the public key as datatransfer may be unidirectional. In some examples, the AMD 1402 may usethe public key received from the computing system 1404 to encrypttherapy data to be transmitted to the computing system 1404.Alternatively, or in addition, the computing system 1404 may use thepublic key received from the AMD 1402 to encrypt a therapy report basedon the therapy data, or other data obtained by the computing system1404, to be transmitted to the AMD 1402.

At block 1508, the computing system 1404 may determine whether the AMD1402 is authorized to transmit data (e.g., therapy data) to thecomputing system 1404. The computing system 1404 may determine whetherthe AMD 1402 is authorized to transmit the data based on a deviceidentifier associated with the AMD 1402, an account identifierassociated with the AMD 1402 or a subject, or any other information thatmay be used to determine whether an operation is authorized. In somecases, the computing system 1404 may use a whitelist to confirm that theAMD 1402 is authorized to communicate with or transfer data to thecomputing system 1404.

If it is determined that the AMD 1402 is authorized to transfer data tothe computing system 1404, the computing system 1404 may receive thedata from the AMD 1402 at block 1512. The data may be encrypted therapydata associated with therapy provided by the AMD 1402 to the subject. Insome embodiments the computing system 1404 may store the therapy data atone or more of a storage of the computing system 1404 or a storage ofthe networked-computing environment 1408. In some examples, theencrypted data may include at least one of operation data correspondingto operation of the AMD 1402 or error data corresponding to an error inthe operation of the AMD 1402. In some embodiments additional encrypteddata may be received from the AMD 1402 on an intermittent basis, aperiodic basis, a scheduled basis, or on a continuous basis for at leasta time period.

If at block 1508, the computing system 1404 determines that the AMD 1402is not authorized to transfer data to the computing system 1404, theprocess may proceed to block 1510 where the request is denied. In somecases, denying the request may include sending an indication to the AMD1402 that the request is denied. Further, the computing system 1404 mayprovide a reason why the request is denied, such as incorrect passwordor unrecognized device identifier.

At block 1514, the computing system 1404 may decrypt the encryptedtherapy data received from the AMD 1402. The computing system 1404 mayuse a private key (e.g., stored in a memory of the computing system1404) that corresponds to the public key provided by the computingsystem 1404 to the AMD 1402. Alternatively, or in addition, thecomputing system 1404 may use a shared secret generated between thecomputing system 1404 and the AMD 1402 to decrypt the encrypted therapydata.

At block 1516, the computing system 1404, may use the therapy datareceived from eth AMD 1402, to generate a therapy report. In someexamples, the decrypted therapy data and/or therapy report may be storedin a memory of the computing system 1404. The therapy report may includeany type of statistics or data that can be extrapolated from the therapydata, or from a series of therapy data received over time from the AMD1404 and/or from a plurality of AMD associated with a plurality ofsubjects.

At block 1518, the computing system may receive a request from a displaysystem 1410 that is separate from the networked computing environment,to access the therapy report generated at block 1516. The request maycomprise an account identifier associated with a user that caused therequest for the therapy report to be generated. Alternatively, or inaddition, the request may include an identifier associated with thedisplay system 1410 requesting the therapy report. Further, the requestto access the therapy report may include account information andpassword for the display system 1410 and/or for a user associated withthe display system 1410. In some cases, the display system 1410 may bethe AMD 1402. In some such cases, the AMD 1402 may not need toauthenticate to receive the therapy report as authentication may occuras part of the block 1502. In some cases, such as when the therapyreport is generated at a different time than receipt of the therapydata, the AMD 1402 may authenticate with the computing system 1404before receiving the therapy report.

At block 1520, the computing system 1404 may use an account identifier,a device identifier, or other authentication information received at theblock 1518 as part of the request to access the therapy report todetermine whether the account associated with the account identifier isauthorized or permitted to view the therapy report. In some cases, thedisplay system 1410, or user, is authenticated prior to the receipt ofthe request to access the therapy report.

If the display system 1410 or the account associated with the request toaccess the therapy report (or therapy data) is not successfullyauthenticated and/or is determined to not be authorized to access thetherapy report (or therapy data), the computing system 1404 may deny therequest at the block 1524. The operations associated with the block 1524may include one or more of the embodiments associated with the block1510.

If at block 1520 the computing system 1404 determines that the accountis permitted to view the therapy report, the computing system 1404, atblock 1522, may transmit the therapy report to the display system 1522.The therapy report may be transmitted over a direct connection to thedisplay system 1410 or over a computing network, which may include theInternet. Further, the computing system 1404 may use an encryptedcommunication channel to communicate the therapy report (or therapydata). In some cases, upon the computing system 1404 receiving therequest to provide access to or to transmit the therapy report (e.g., aspart of the block 1518), the computing system 1404 may request a publickey from the display system 1410 and can encrypt the therapy reportusing the received public key. In some such examples, the display device1410 may use a private key to decrypt the encrypted therapy reportreceived from the computing system 1404. This private key may correspondto the public key provided by the display system to the computing system1404. In some examples, the display system can be the AMD 1402. In somesuch examples, the subject or an authorized user may be able to view thetherapy report received from the computing system 1404, on a userinterface (e.g., a touchscreen display) of the AMD 1402.

In certain implementations, the computing system 1404 may determine thatthe therapy data or other data received from the AMD 1402 satisfies analert threshold condition based at least in part on physiologicalinformation of the subject obtained from the AMD 1402. In some suchimplementations, if the computing system 1404 determines that thetherapy data or other data received from the AMD 1402 satisfies an alertthreshold condition, the computing system 1404 may send an alert to oneor more display systems 1410 designated to receive alerts from thecomputing system 1404. In some cases, the alert may be sent to a userdevice of the subject, a user device of another user (e.g., a parent,guardian, or medical practitioner), a user device of an emergencyservices provider, or a user device of any other authorized userassociated with the subject.

In some examples, the alert threshold condition may be associated withthe health condition of the subject. For example, the alert thresholdcondition may include the subject's blood glucose level being above(hyperglycemia) or below (hypoglycemia) a set value or setpoint range.In some examples, the alert threshold condition may be associated withthe operation of the AMD. For example, the alert threshold condition mayinclude the rate of therapy (e.g., the rate at which insulin is providedto a subject) being above or below a set value. As another example, thealert threshold condition may relate to a quantity of medicamentremaining in a medicament cartridge.

In some examples, alert threshold condition may be associated with thetemporal behavior of therapy data over a period of time. For example,the alert threshold condition may relate to fluctuations or variationsof the subject's blood glucose level being outside of a particularrange.

In some cases, the one or more alert threshold conditions may be definedor specified by a healthcare provider. In some such examples, thehealthcare provider may change one or more alert threshold conditionsbased at least in part on physiological parameters or characteristics ofthe subject.

FIG. 15B is a flow diagram that illustrates an example method that maybe used by AMD 1402 to transmit therapy data to the computing system1404 over a direct end-to-end connection. The process illustrated inFIG. 15B may include one or more of the embodiments previously describedwith respect to the FIG. 15A.

At block 1530, the AMD 1402 may identify a computing system 1404 of anetworked computing environment 1408 based at least in part on awhitelist of one or more approved computing systems stored in the memoryof AMD 1402. In some examples, the whitelist may be stored in a memoryof AMD 1402 during manufacture of the ambulatory medical device. In somecases, the AMD 1402 may accept data packets from and/or communicateexclusively with computing systems identified on the whitelist. Further,in some cases, the AMD 1402 may confirm, for example, by accessing apacket header, that received packets are received from a computingsystem on the whitelist. Data packets received from computing systemsthat are not on the whitelist may be ignored or discarded. In somecases, a user may be able to add a computing system to the whitelist,such as a laptop or smartphone of the subject or a guardian of thesubject.

At block 1532, the AMD 1402 may establish a direct end-to-end dataconnection to the computing system 1404 using an address of thecomputing system 1404 obtained from the whitelist. In some examples, theaddress may be a network address (e.g., a network address of thenetworked computing environment 1408). In some such examples, thenetwork address can be an Internet Protocol (IP) address, a UniformResource Locator (URL), a Uniform Resource Identifier (URI), or aUniform Resource Name (URN). In some embodiments the direct end-to-enddata connection may be established via a wireless wide area network(WAN) using a transceiver of the AMD 1402 configured to supportcommunication over one or more communication standards such as a lowpower wide area network (LPWAN) communication standard, a NarrowbandLong-Term Evolution (NB-LTE) standard, a Narrowband Internet-of-Things(NB-IoT) standard, or a Long-Term Evolution Machine Type Communication(LTE-MTC) standard. In some such embodiments, the transceiver may beconfigured to communicate via the wireless wide area network using theaddress. In some examples, the direct end-to-end data connection to thecomputing system 1404 may be established by transmitting a connectionrequest to the computing system 1404. In some such examples, theconnection request may include a device identifier of the AMD 1402.

At block 1534, the AMD 1402 may receive a public key from the computingsystem 1404. At block 1536, the AMD 1402 may encrypt therapy datarelated to therapy delivered by the AMD 1402, based at least in part onthe public key received from the computing system. In some embodiments,the AMD 1402 may encrypt the therapy data based at least in part on ashared secret generated based on an asymmetric key pair (e.g., a publickey and a private key) of the AMD 1402 and an asymmetric key pair of thecomputing system 1404. For example, the shared secret may be generatedusing a Diffie-Hellman key exchange.

At block 1538, the AMD 1402 may transmit the encrypted therapy data tothe computing system 1404 over the direct end-to-end connection. In someembodiments, the AMD 1402 may obtain additional therapy data that may beobtained at a different time period than the transmitted therapy data.The AMD 1402 may encrypt the additional therapy data using the same keyor shared secret used to encrypt the therapy data at the block 1536.Alternatively, a different key or shared secret may be obtained and usedto encrypt the additional therapy data. For example, at the time thatthe additional therapy data is obtained, a new secure channel may beestablished using a new asymmetric key pair. The additional encryptedtherapy data may be transmitted to the computing system over the directend-to-end connection. In some embodiments the computing system maydecrypt the received encrypted therapy data using the public key sent tothe AMD 1402 and a private key stored in a memory of the computingsystem. In some cases, in addition to the therapy data, AMD 1402 maytransmit status information of the AMD 1402 to the computing system1404. The status information of the AMD 1402 may include one or more ofoperation data or error data, wherein the operation data corresponds tooperation of the ambulatory medical device, and wherein the error datacorresponds to an error in operation of the AMD 1402.

In various embodiments, the computing system 1404 that performs thesteps described with respect to FIGS. 15A and 15B can be a computingsystem in a networked computing environment 1408/1608, a data center, acomputing system of a hosted services environment, or a cloud network1406/1606.

In some embodiments, the AMD 1402 may receive an account identifierassociated with a user authorized to access data associated with thesubject at the networked computing environment 1408 and transmit theaccount identifier to the computing system 1404. In these embodiments,the computing system 1404 may allow the authorized user to access thetherapy data received from the AMD 1402. In some embodiments, the AMD1402 may also transmit a set of permissions to the computing system 1404that may authorize the user to access the therapy data associated with asubject.

FIG. 16 is a block diagram, illustrating an example network and dataflow configuration where an AMD 1602, which is directly connected to acomputing system 1604 (e.g., computing system within a cloud network1606), may generate and send alerts 1611 to various display systems 1610(e.g., alert messages, alert signals and the like) upon determining thatdata received from the AMD 1602 satisfies a threshold condition. Thecomputing system 1604 may be part of a networked computing environment1608 (e.g., a data center, networked computing system), or a cloudnetwork 1606 or cloud computing system of a cloud service provider. Thecomputing system may include one or more non-transitory memories and oneor more hardware processors configured to execute thecomputer-executable instructions stored in one or more non-transitorymemories. The AMD may receive data from one or more biomedical sensors1605 (e.g., blood glucose level sensor, analyte sensor, temperaturesensor, heart beat sensor, and the like) and/or one or moreenvironmental sensors 1603 (e.g., geolocation receiver, motions sensor,accelerometer, and the like). These sensors may be included in the AMDunit or may be connected to the AMD via a wired or wireless link.

In some cases, the one or more display systems 1610 receiving the alert1611, may be display systems that have previously received therapyreports from the computing system 1604. In some examples, the one ormore display systems may be selected and/or authorized by the subjectwho is receiving therapy from the AMD 1602 to receive alerts 1611. Thedisplay systems 1610 may receive alerts 1611 from the AMD 1602 mayinclude: a medical practitioner 1614 (e.g., a doctor, a nurse, etc.), aguardian of the subject 1616 (e.g., subject's parents), an emergencyservice provider 1618, an authorized user 1620 (e.g., a user authorizedby the subject such as spouse, relative, friend, and the like), ahealthcare provider 1622, or a device of the subject 1612 (e.g., amobile device, cell phone, personal computer, tablet, and the like). Insome examples, when it is determined that received data from the AMD1602 satisfies a threshold condition, an alert may be sent to one ormore display systems 1610 (e.g., alert 1611) and/or the AMD 1602 (e.g.,alert 1609).

In some examples, the AMD 1602 may be configured to establish aconnection to support continuous data transfer to the computing system1604 for a given period of time (e.g., provided to the AMD by thesubject), in order to capture data that is generated over the givenperiod of period and/or that satisfies an alert threshold condition. Forexample, the subject may request a continuous connection between AMD andthe computing system when going for a hike alone to make sure that ifhis/her health condition deteriorates during the hike, an alert is sentto one or more authorized display systems.

In some examples, a geolocation sensor (e.g., a Global PositioningSystem (GPS) receiver) and/or a proximity sensor can be used to enablelocation-activated features, such as automatic upload of data at certainlocations.

In some cases, the AMD 1602 may include, communicate with, or otherwiseconnect or interface with a motion sensor, an accelerometer, or ageolocation system. In some examples, the aforementioned sensors may beused to determine or detect the velocity of the AMD and/or the subject.In some such examples, using the data 1607 obtained from the AMD 1602,such as the location and/or velocity information, can be used to provideintelligent alerts. For example, if the AMD 1602 (or a computing system1604 receiving data from the AMD 1602) determines from the locationand/or motion data that a user is travelling at a high rate of speed(e.g., likely in a car) and the user's blood glucose level is low (e.g.,below 55 mg/dl), the AMD 1602 (or the computing system 1604) mayautomatically alert an emergency service provider 1618 that a subject isat risk of hypoglycemia and may be driving. Further, the AMD 1602 and/orthe computing system 1604 can provide a location of the subject to theemergency service provider 1618. In some cases, the determined velocityof the AMD may be used to generate driving alerts to inform the subjectto pull over immediately or as soon as it is safe due to a risk of ahypoglycemic event. In some examples, if it is determined that thesubject is moving at 6-7 mph, exercise alerts may be generated, forexample, to alert the subject to pause exercising if the subject's bloodsugar level drops below a certain level. In some examples, if thesubject hasn't moved for 3 hours and has low blood sugar, the system canenable automatic notification to emergency services. Further, thedetermined activity level of the subject can be sensed and used tomodify the therapy delivery. For example, a determination of thesubject's motion can be used to automatically adjust the rate of therapydelivery (e.g., raise the blood sugar level that triggers the therapydelivery).

In some examples, the computing system 1604 may generate alerts based ona trend of the aggregated therapy data or based on therapy data that isan outlier to the aggregate therapy data or an outlier to a time-basedaverage of the therapy data.

Additionally, the computing system 1604 can send a text message, call,or generate any other type of alert that may be automatically providedto a device (e.g., smartphone, laptop, etc.) of a follower, healthcareprovider, or other user associated with the subject when the therapydata satisfies an alert threshold. These messages or alerts may beprovided from the computing system to a third-party device in caseswhere roaming or disabling of the data plan on the AMD occurs (e.g., noTCP/IP available). Further, the computing system 1604 may send a textmessage or call 911 in case of a detected emergency. The computingsystem 1604 can track, for example, via GPS, the end user's most recentlocation and share that information with a follower and/or emergencypersonnel. Moreover, the computing system 1604 may enable an end user toorder and re-order medical supplies directly from the viewing device.

In some examples, the computing system 1604 can generate notificationsregarding potential medical risks (e.g., generate a message when thereis a risk of hypoglycemia). Further, more detailed processing in thecomputing system can result in improved recommendations (e.g., triggerlevels for therapy delivery, or other control parameters)

FIG. 17 is a flow diagram illustrating an example method that may beused by computing system 1604 to generate and send alerts (e.g., alertmessages, alert signals and the like) to one or more authorized devicesand to the AMD. At block 1702, the computing system 1604 may establish adirect end-to-end data connection to an AMD 1602, for example, via awireless wide area network (WAN) using a Narrowband Long-Term Evolution(NB-LTE) transceiver included in the AMD 1602. In some examples, thedirect end-to-end connection may be established for a given period oftime set by the subject or an authorized user (e.g., a guardian of thesubject). The block 1702 may include one or more of the embodimentsdescribed with respect to the block 1502.

Once a direct end-to-end data connection between the AMD 1602 and thecomputing system 1604 is established, at block 1704 the computing system1604 may receive a public key, from the AMD 1602 over the establishedconnection. As previously described, in some cases, the key exchange maybe part of the process of establishing the data connection. Further, theblock 1704 may include one or more of the embodiments described withrespect to the block 1504.

At block 1706 the computing system may receive a request from the AMD1602 to transfer data (e.g., therapy data, medical sensor data orenvironmental sensor data) generated by the AMD 1602 to the computingsystem 1604 over the direct end-to-end data connection. In some cases,the request to transfer data may be the data itself. In other words, insome cases, there may not be a formal request to transfer the data, butinstead data may be transmitted by the AMD 1602 to the computing system1604 upon establishing the data connection. The block 1706 may includeone or more of the embodiments described with respect to the block 1506.

In some cases, the request may include a time period during which AMD1602 continuously transmits data generated by the AMD 1602 or obtainedfrom one or more sensors (e.g., medical sensors 1603 or environmentalsensors 1605), to the computing system 1604. In some such cases, thetime period for continuous data transfer from the AMD 1602 to thecomputing system 1604, may be provided by the subject or a guardian ofthe subject to the AMD.

At block 1708, the computing system 1604 may determine whether the AMD1602 is authorized to transfer data to the computing system 1604. Insome cases, the determination may be based at least in part on thedevice ID associated with the AMD 1602, The block 1708 may include oneor more of the embodiments described with respect to the block 1508.

If it is determined that the AMD 1602 is not authorized to transfer datato the computing system, the request received at block 1706 may bedenied at block 1710. The block 1710 may include one or more of theembodiments described with respect to the block 1510.

If the computing system 1604 determines that the AMD 1602 is authorizedto transfer data to the computing system 1604, at block 1712 thecomputing system 1604 may permit the AMD 1602 to provide the encryptedtherapy data to the computing system 1604. In other words, the computingsystem 1604 may receive the therapy data, which may be encrypted therapydata, from the AMD 1602. The block 1712 may include one or more of theembodiments described with respect to the block 1512.

At block 1714, the computing system 1604 may decrypt the received datausing a private key. The private key may correspond to a public key ofthe computing system 1604 provided to the AMD 1602 to encrypt thetherapy data. This private key may be stored in a memory of thecomputing system 1604. The block 1714 may include one or more of theembodiments described with respect to the block 1514.

At block 1716, the computing system 1604 may determine whether thereceived data (e.g., therapy data, medical sensor data or theenvironmental sensor data), satisfies a threshold condition. In someexamples, the computing system 1404 may determine that the therapy dataor other data received from the AMD 1402 satisfies an alert thresholdcondition based at least in part on physiological information orphysiological measurements of the subject obtained from the AMD 1402. Insome cases, the physiological measurements may be obtained from one ormore physiological sensors (e.g., glucose monitors, heart rate monitors,blood pressure monitors, etc.) that provide physiological measurementsto the AMD 1402. In some cases, the threshold condition may be providedto the AMD 1602 by the subject or an authorized user (e.g., a guardianof the subject). In some examples, the threshold condition may beprovided by a healthcare provider. In some such examples, the thresholdcondition may be stored in a memory of the AMD 1602.

If the computing system 1604, determines that the therapy data satisfiesa threshold condition, the computing system may generate and transmit analert to one or more display systems 1610 that are authorized (e.g., bythe subject or a guardian of the subject) to receive alerts at block1718. In some examples, the subject, or other authorized user, mayauthorize one or more display systems 1610 to receive alerts by, forexample, providing the account IDs of the one or more display systems tothe computing system 1604 or the networked computing environment 1608.If at block 1716, the computing system 1604, determines that the therapydata does not satisfy a threshold condition, the process may return toblock 1712 where the computing system 1604 continues receiving therapydata from the AMD 1602.

Preventing Inadvertent Therapy Changes

As described above, the ambulatory medical device (AMD) may include auser interface (e.g., touchscreen interface or a non-touchscreeninterface) that may present one or more user-interface screens to a userenabling the user to modify one or more therapy settings of the AMD,such as a quantity of medicament delivered when a condition is met orthe condition that triggers the delivery of medicament to a subject. Insome cases, the AMD can be an ambulatory medicament device. The user maybe a subject who is receiving medicament or therapy, a clinician orhealthcare provider, a parent or guardian, or any other user who may bepermitted to modify settings of the ambulatory medicament device. ForAMD that include a user interface, there is a risk that a setting isaccidentally modified or is modified (intentionally or unintentionally)by a user that does not fully comprehend his or her action (e.g., achild or a user with a reduced mental capacity). Further, AMD mayaccidentally have settings modified by inadvertent interactions with auser interface, such as may occur when an AMD is worn against the bodyof a subject.

An ambulatory medicament device (AMD) may be configured to prevent aninadvertent modification to a control parameter and/or to medicamentdelivery, for example, in the event of a setting of the AMD beingaccidentally modified by a user or inadvertent interactions with a userinterface of the AMD.

As mentioned above, in some embodiments the user may modify the controlor configuration of the AMD using a user interface. There is apossibility that the control or configuration of the AMD is accidentallymodified through the user interface. For example, as the user maytransport the AMD, there is a danger that the user will inadvertentlyactivate input in the AMD that initiates a therapy change input (e.g.,by applying pressure on the AMD that may be placed in the jacket pocketof the user).

With reference to FIG. 18, in some embodiments, the control andcomputing module (CCM) 610 of the AMD may include a set of therapychange procedures implemented to prevent therapy change inputs 1829 thatare inadvertent. The therapy change procedures implemented by the CCM610 may be implemented as instructions stored in a memory of CCM (e.g.,the main memory 616) and executed by the processor 614. The CCM 610 mayverify the therapy change input 1829, received from a user 1827, usingone or more therapy change procedures before the AMD 600 administerstherapy based on the received therapy change input 1829. In some cases,the therapy change inputs 1829 may be received in response to a userinteraction with a user interface module 1808. The therapy change inputs1829 may control or relate to one or more therapy change proceduresperformed by the control and computing module (CCM) 610 or one or moreof the controllers (e.g., the controllers 1830-1836) implemented by theCCM 610.

The user interface module 1808 may include any type of user interfacecontroller for providing a user interface. The user interface may beprovided on a display of the AMD 600, or may be transmitted to a displayof an electronic device in communication with the AMD 600. In somecases, the user interface controller may be a touchscreen controllerthat is configured to output display signals configured to generate oneor more user interface screens on a touchscreen. Further, thetouchscreen controller may be configured to receive user input signalscorresponding to user interaction with the touchscreen.

In certain embodiments, the user 1827 may wake the AMD from a sleepstate or unlock the AMD by interacting with a wake interface 1822. Whenthe AMD is in a sleep state, the touchscreen controller may not receiveuser input or user input signals corresponding to user input. Waking theAMD 600 may include activating a touchscreen interface or presenting alock screen to a user. Further, waking the AMD may include waking thetouchscreen controller such that it can receive user input or user inputsignals corresponding to user input. The wake interface 1822 can includeone or more of the additional user interfaces mentioned above that areconfigured to generate and provide a wake input (or wake signal) to theCCM when detecting a pre-set user interaction. Alternatively, or inaddition, the wake interface 1822 can be any type of wake interfaceelement of the AMD that a user can interact with to wake at least afeature (e.g., a touchscreen interface) of the AMD. For example, thewake interface element can be a physical button (e.g., a push button, aslide button, etc.), a capacitive element, a resistive element, or aninductive element. In some cases, the wake interface element can be orcan include a biometric element, such as a fingerprint reader, an irisscanner, a face detection scanner, etc. In some cases, the AMD may wakein response to detection of a particular movement or motion. Forexample, a determination that the ambulatory medicament device is beingmoved with a particular motion or within a line of sight or a visualrange of a user may cause the AMD to awaken or cause the AMD to awakethe touchscreen interface of the AMD. The AMD may determine that the AMDis being moved within a line of sight of the user based on the type ofmotion and/or the detection of a user's eyes via, for example, an irisscanner or a camera.

In some examples, the therapy change input 1829 can be an input providedby the user 1827 to change a therapy that is currently being deliveredto the user 1827. For example, the therapy change input 1829 may causethe insulin or glucagon infusion pump to start infusing an amount ofinsulin or glucagon into the user 1827. In some examples, the therapychange input 1829 provided by the user 1827, may affect the therapydelivery at future time. In some examples, the therapy change input 1829may modify the rate of insulin or glucagon infusion into the user 1827.The therapy change input 1829 may also cancel insulin or glucagoninfusion into the user 1827 from the insulin or glucagon infusion pump.In some cases, the therapy change input 1829 is a request to change acontrol parameter. The control parameter may be changed in response tothe request. Alternatively, or in addition, a confirmation action (e.g.,a swipe gesture or an interaction with a physical or digital button onthe touchscreen) confirming the requested control parameter change maybe required before the control parameter is changed.

In some cases, when a wake action is detected by the wake interface1822, a wake input is sent to the control and computing module 610,which may imitate or perform a wake control procedure to wake/unlock theuser interface (e.g., a touchscreen display). In some cases, the CCM 610may use the wake controller 1834 to perform the wake procedure.

When in the wake and/or unlocked state, a user may interact with thetouchscreen 1824, alphanumeric pad 1826 or other types of userinterfaces that may be included in the user interface module 1808, toobtain access to therapy change user interface.

The therapy change user interface may be activated by a first userinteraction with the user interface (e.g., touchscreen display 1824).When the first user interaction is detected, the user interface module1808 may send an input signal to the control and computing module 610 todetermine if the first user interaction relates to a therapy changerequest or a control parameter change request. In some cases, the CCM610 may use the therapy change controller 1836 to determine whether thefirst user interaction corresponds to a request to change a controlparameter, or a request to access a control parameter change interface.If it is determined that the first user interaction satisfies a set ofpredefined conditions, the therapy change controller 1836 sends a signalto the user interface module 1808 to activate the therapy change userinterface.

In some embodiments, the type of therapy change user interface and/orthe available therapy change selections included in the user interfacemay depend on the user interaction. For example, in response to one oftwo user interactions, the therapy change control procedure 1836 maysend one of two signals to the user interface module 1808. The therapychange user interface, or the therapy change controller 1836, may unlockone of two different therapy change user interfaces that result indifferent options of therapy change selections for the user 1827. In animplementation of this example, a therapy change selection to make asignificant therapy change, such as dramatically (e.g., more than amagnitude, or more than 3 change increments) increase the rate ofinsulin or glucagon infusion rate, may require a user interaction thatis different from the user interaction that may be required for aninsulin or glucagon infusion at a normal or prescribed rate, or asmaller change to the control parameter. In some examples, the userinteraction may be a simple interaction (e.g., a simple gesture orunlock gesture interaction) that unlocks a therapy change user interfacewith therapy change selections that are limited. Another userinteraction may be a complicated interaction (e.g., a series of complexgestures) that unlocks a therapy change user interface with therapychange selections that have no limits. An example of this implementationmay be useful for child users. The child user may perform the first orsimpler gesture that is made up of a series of simple inputs to unlocktherapy change selections that are limited. An adult user may performthe second or more complex gesture that is made up of a series ofcomplex inputs to unlock the therapy change user interface with therapychange selections that have no limits.

Once activated, the therapy change user interface generated by the userinterface module 1808 may provide one or more therapy control elementsthat enable the user to modify the one or more settings of the AMD 600.In some examples, the therapy control element may include any type ofuser interface screen on the touchscreen, or other type of userinterface in the non-touchscreen context, that enables or permits a userto change a configuration of the AMD 600. This change in configurationof the AMD 600 may relate to a change in the therapy provided or in thedetection of a triggering event that causes therapy (e.g., medicamentdelivery) to be provided to a subject. For example, the change inconfiguration may include a selection between one or more hormones thatregulate blood sugar level (e.g., insulin or glucagon) of a user, anamount of the one or more hormones that regulate blood sugar level ofthe user, a rate of delivery of the one or more hormones, a thresholdfor determining when to deliver the one or more hormones, a change in anestimated blood absorption rate of the one or more hormones, and thelike. In some examples, the therapy control element may include any typeof user interface screen on the touchscreen, or other type of userinterface in the non-touchscreen context, that enables or permits a userto change one or more control parameters of the AMD 600 that control thetherapy delivery.

In some cases, a change to the setting (e.g., control parameters orconfiguration of the AMD) of the AMD is automatically and/or instantlyrecognized or implemented by the AMD, and/or transmitted to the AMD. Insome cases, a confirmation of the change may be required before thesetting change is implemented by or transmitted to the AMD.

This confirmation may be entered based on a second user interaction witha user interface (e.g., touchscreen display 1824). When the second userinteraction is detected, the user interface module 1808 sends an inputsignal to the control and computing module 610 wherein it is analyzed bya therapy change control procedure 1836. If it is determined that thesecond user interaction satisfies a set of predefined conditions, thetherapy change control procedure 1836 implements the change to theconfiguration of the AMD.

The first and/or second user interactions may include the selection ofan icon, a series of taps or inputs, one or more gestures (e.g., alinear swipe, an arcuate swipe, a circular swipe, or other simple orcomplex movement across the touchscreen), performing a pattern orsequence on the touchscreen (e.g., drawing an image), a multi-touch ormulti-input interaction, a combination of the foregoing, or any othertype of interaction with a touchscreen, or portion thereof. The seriesof inputs may be any combination of touch movements, touch points,numerical characters, alphabetical characters, and other symbols.Gesture interactions can be guided by visual indicia displayed orprinted on the AMD. In some embodiments, the visual indication caninclude animations that suggest or guide user interactions with atouchscreen. For example, the first user interaction can include anarcuate swipe around at least a portion of a generally circular icon orlogo. In some examples, the first and/or second user interactions mayinclude a predetermined sequence of numerical and/or alphabeticalinputs. In some examples, a series of multiple inputs, the range ofparameters for an input may be dependent on other inputs in the series.For example, required start position of a touch movement may bedependent on the position of the previous touch movement. The time thatthe series of inputs are entered may also be a part of the range ofparameters. For example, a series of inputs may need to be entered in noless than 3 seconds or more than 3 seconds, and no more than 15 secondsor less than 15 seconds.

Further, one or more of the interactions may include interacting with asensor as an optical sensor (e.g., visible light or IR sensor),biometric sensor (e.g., a fingerprint or retinal scanner), a proximitysensor, a gyroscope, or a combination of accelerometer and gyroscope,and the like. Also, in some cases, the second user interaction may bereceived through a wireless signal such as RFID or Bluetooth. In someembodiments, the second user interaction may include receiving aselection of an indicator box that correspond to either insulin orglucagon and receiving a predetermined sequence of numerical inputs inorder to deliver the therapy change selection.

The type of user interaction that unlocks the touchscreen, providesaccess to a configuration screen, and/or confirms a change to theconfiguration of the AMD may be the same or may differ.

In some examples, the system may have a time-out such that if nointeraction occurs for a set period of time, the user interface willturn off and the therapy change request process has to start again. Inone implementation of the time-out, if no interaction occurs for morethan 30 seconds after the system is waked/unlocked before the seconduser interaction is received by the user interface, the user interfacewill be deactivated.

In some implementations, once a change or modification to the therapysetting (e.g., a change in control parameters or configuration of theAMD) is confirmed, implemented, or transmitted, the AMD may beginoperating based on the modified setting selected and/or provided by theuser.

In some cases, this operation may include triggering therapy deliverybased on the new setting or providing therapy based on the new setting.For example, the AMD may generate a dose control signal based at leastin part on the modified configuration or control parameter or may detecta trigger based at least in part on the modified configuration orcontrol parameter that leads to the provisioning of therapy.

With reference to FIG. 18, in some embodiments, the changes made throughthe therapy change user interface are sent to CCM wherein the therapycontrol change procedure 1836 in CCM transfers the changes to the deviceand subject monitoring and control procedures 1832. The device andsubject monitoring and control procedures 1832 may be implemented in theCCM 610 to monitor and control one or more modules or systems of the AMD(e.g., therapy delivery configuration) as well as the health conditionof the subject 1827 using the subject sensor (e.g., CGM sensor). Forexample, the device and subject monitoring and control procedures 1832may receive information about a therapy change requested by a user 1827through a user interface (a touchscreen display 1824 or alphanumeric pad1826) or information about glucose level in subject's blood from thesubject sensor 1820. Subsequently, the device and subject monitoringprocedure and control procedures 1832 may transmit the informationpertaining a health condition of the subject and/or the AMDconfiguration, to the medicament dose control procedure 1830. In someexamples, the parameters in the medicament dose control procedure 1830may be adjusted based on the changes and/or information captured by thedevice and subject monitoring and control procedures 1832. Themedicament dose control procedure 1830, may control and activate themedicament delivery interface 1806 by providing a medicament dosesignal. In some examples, the medicament does control may be generatedat least partially based on detected conditions or physiologicalcharacteristics of the subject (e.g., provided by the readings of thesubject sensor 1820) and according to parameter values received from thetherapy change control procedures 1836. The medicament deliveryinterface 1806 may provide a therapy change delivery to the useraccording to the information received by device and subject monitoringprocedure 1832.

In some examples, the dose control signals may be produced based on time(e.g., medicament may be delivered on a periodic basis), one or moreuser commands, indication that the subject is planning to engage or isengaging in a particular activity (e.g., eating a meal, exercising,sleeping, fasting, etc.), or any other factor that may relate to orcause the triggering of therapy (e.g., medicament delivery).

FIG. 19 is a flow diagram illustrating an example method that may beused by an AMD to allow a user to change the configuration of the AMDusing a touch screen user interface. The user may initiate theconfiguration change process by waking/unlocking the touch screen usinga wake action. At block 1902 a wake action is received by the wakeinterface 1822 of the AMD. At block 1904 the wake interface 1822 sends awake signal to the CCM module 610 of the AMD. Within CCM 610, the wakeprocedure generates, activates, or unlocks the touch screen display 1824(at block 1906). At block 1908 the AMD receives a response or a firstgesture from the user. A block 1908, a therapy change user interface isunlocked. At block 1912, the user may modify or change one or moretherapy settings (e.g., control parameter or configurations) of the AMD,using one or more therapy control elements provided in the correspondingtherapy change user interface. At block 1914 the user may confirm thechanges made, by providing a second gesture on the touchscreen display1824. Once the confirmation is received, at block 1916 the requestedtherapy changes or therapy modification are implemented, and the AMD maybegin operating according to a modified configuration or modified set ofcontrol parameters. In some examples, once the user confirms the changesmade, the medicament dose control module 1830 may be sent a dose controlsignal to the medicament delivery interface 1806 to trigger a therapydelivery to the subject based on the modified therapy settings.

In some cases, AMD, or a control device that enables a user to modify aconfiguration of the AMD, may have a timeout feature. The timeoutfeature may cause the AMD or the control device to enter a sleep orlocked state after a period of time of inactivity by the user. In somecases, the timeout feature may cause the AMD or the control device toenter a sleep or locked state after a particular period of timeregardless of whether the user is interacting with the ambulatorymedicament device or control device. In some cases, the timeout featuremay cause the user interface (e.g., a touchscreen display) to becomeinactive or enter a lock state. Thus, a user may have a limited periodof time to modify the configuration of the AMD.

In some examples, the therapy change made by a user may trigger thedelivery of a medicament according to the therapy change received andconfirmed by a user. This therapy change delivery may occur after a settime from period from receiving the confirmation.

In some embodiments of the AMD, an alarm status indicator may bepresented to the user via the user interface. The alarm status indicatorcan be an alert message or an alert symbol. The alarm status indicatormay be related to a configuration change made by a user, a change in thestatus of the AMD not related to a user input, or the condition of thesubject (e.g., detected by the subject sensor).

FIG. 20A is an illustration of the touchscreen display 2000 of anexample AMD after the touch screen is waked/unlocked by a wake action ofa user and before the first user gesture is received. Even while thetouchscreen display is locked, the touchscreen display 2000 may displayany images, animations, text, or other graphics. The first gestureprompt 2005 displays to the user 1827 the input required to unlock thetherapy change user interface. Here, the first gesture prompt 2005 showsthe user 1827 that a touch movement that begins at the greater-thansymbol (>) and moves right across the “Unlock” text is the acceptablefirst gesture. In addition to the first gesture prompt, the refillstatus of the AMD 600 is shown in a graphic representation 2010. Here,the graphic representation 2010 shows that the insulin cartridge in theAMD device 600 is almost full. A current blood sugar level 2015 is shownat the top of the touchscreen display 2000, which can inform the user1827 of the need for a hormone that regulates blood sugar levels. Thetouchscreen display 2000 also shows a graphic representation 2020 of acartridge of glucagon. The graphic representation of an alarm 2025 inthe touchscreen display 2000 shows that an alert is set on the AMD 600.

FIG. 20B is an illustration of an example touchscreen display 2050 thatmay prompt the user to enter a predetermined series of inputs for thefirst gesture or second gesture. In various embodiments, such as theembodiment shown in FIG. 20B, the touchscreen display 2050 may displaytouchable number keys 2055. In various embodiments, the touchscreendisplay 2050 prompts the user 1827 to enter the series of inputs thatcomplete the first gesture or second gesture. The text “Enter Code” 2060prompts the user 1827 to enter a predetermined or preselected numericalsequence as part of the first gesture or second gesture. The numericalsequence being typed by the user 1827 is displayed in field 2065 as itis entered as an aid to the user 1827. The input 2070 of the touchscreendisplay 2050 shows that a touch movement of a swipe right across thebottom of the screen is required to complete the predetermined series ofinputs for the first gesture or second gesture. A Bluetooth connectionsymbol 2075 shows that the AMD 600 is paired or can be paired to anotherelectronic device.

FIG. 20C is an illustration of an example therapy change user interface(in this case a touchscreen display 2002). The example screen shown heremay prompt the user 1827 to select one or more hormones for regulatingthe blood sugar level of the subject. The touchscreen display 2002presents the user 1827 with an option to select between two hormones(e.g., insulin and glucagon), or select both hormones. In the screenshown in FIG. 20C, the selected option by the user is “insulin only”2008. The user 1827 is also given the options of selecting the “glucagononly” button 2012 or both “insulin & glucagon” button 2004. Once theuser 1827 selects one of the options provided on the touchscreendisplay, the “Next” button 2014 may be selected to complete the therapychange selection. In some examples, selecting the “Next” button mayprovide the user with more options. For example, selecting the “Next”bottom may prompt the user 1827 to select an amount of the one or morehormones selected by the user 1827. In some implementations, a therapychange user interface may prompt the user 1827 to select a target bloodsugar level and the AMD device may automatically select a hormone (or acombination of hormones) and determine the amount of the one or moreselected hormones that should be delivered during a therapy session tomaintain the blood sugar level at the target level or within a margin ofthe target level.

FIG. 20D is an illustration of another example of user interface on atouchscreen display 2016 that supports therapy change by the user 1827.Here, the user 1827 is given a multitude of options. One or more optionsin the therapy change user interface allow the user 1827 to make atherapy change selection. Other options are related to other AMDfunctions (e.g., generating a therapy report, replacing a cartridge, andthe like). A “Deliver Hormone” button 2030 allows the user 1827 toselect a therapy change that delivers a hormone that regulates bloodsugar to the user 1827. A “Test Blood Sugar” button 2018 allows the user1827 to test the blood sugar level of the user 1827. A “Generate Report”button 2020 generates a document that reports the therapy changes thathave been delivered to the user 1827. A “Refill Cartridge” button 2022allows the user 1827 to fill a cartridge in the AMD device 600 withmedicament. An “Upload to Cloud” button 2026 allows the user 1827 totransmit therapy change information to a cloud-based server. A “SoundControl” button 2024 allows the user 1827 to control the sounds emittedby the AMD 600. A “Settings” button 2028 allows the user 1827 tomanipulate one or more other settings of the AMD 600.

As mentioned above, in some embodiments of the AMD, an alarm statusindicator may be presented to the user via the user interface to alertthe user about a change made or occurred in the AMD configuration.

For example, with reference to FIG. 18, the user 1827 may make a therapychange 1829 using the user interface 1808 and based on the procedureillustrated in FIG. 19. Once therapy change procedure 1836 implementsthe therapy change, the AMD may alert the user that a therapy change isimplemented. The alert message or symbol may be presented on a userinterface (e.g., touchscreen display 1824) before and/or during thetherapy change delivery 1807. For example, an alarm indicator may informthe user 1827 that a therapy change is about to occur. Any number ofdetails of the therapy change may be displayed as part of the alertmessage or symbol. In some examples, the alarm status indicator mayappear after the user unlocks or wakes the user interface using a wakeaction. In some examples, the alarm status indicator may be shown on theuser interface when the user interface is inactive or locked.

FIG. 21 is a flow diagram illustrating an example method that may beused by an AMD to generate an alarm status indicator. In someembodiments, the device and subject monitoring procedures maycontinuously monitor the status of the AMD 2102 (e.g., the userinterface, different modules of the AMD and the like) as well as thehealth condition of a subject (e.g., using various subject sensors suchas analyte sensors). AMD Once a set of status information is received atthe block 2104, the device and subject monitoring procedure maydetermine whether the received status information satisfies an alarmcondition at decision block 2106. If the received status informationdoes not satisfy an alarm condition, no action will be taken and deviceand subject monitoring procedure continuous monitoring the AMD and thesubject. If it is determined that the received status informationsatisfies an alarm condition, the system may determine if a wake signalis received at decision block 2108. If no wake signal is detected, thesystem waits for a wake signal to be received at block 2110. Once a wakesignal is received via one or more user interfaces or sensors, the CCM610 (e.g., using the wake control 1834 and therapy change control 1836)may generate a display of a touchscreen lock screen interface at block2112 and display one or more alarm status indicators at block 2114,corresponding to the detected alarm condition, on the lock screen.Alternatively, in some cases, the alarm status indication may begenerated and included in one or more user interface screens, such as atouchscreen lock screen interface regardless of the sleep or wakecondition of the AMD. However, in some cases, the alarm status indicatormay not be presented to a user until a user performs wake interaction toawaken the AMD and cause a user interface screen to be presented.

In some cases, additional status information may be received by an AMDat some point in time after the previous status information thatsatisfies an alarm condition was received. If the AMD determines thatthe additional status information satisfies the alarm condition for theAMD or for the subject, the AMD may modify one or more alarm statusindicators based at least in part on the additional status information.For example, the alarm indicator may indicate an increased severity ofthe alarm condition via a different status indicator or a modifying of acolor or text associated with the status indicator. If the additionalstatus information satisfies a different alarm condition, an additionalalarm indicator may be displayed on the touchscreen lock screeninterface of the AMD. On the other hand, if the additional statusinformation indicates that the alarm condition has been resolved, thealarm indicator may be removed or modified to indicate resolution of thealarm condition.

In some embodiments, the AMD may allow the user to provide a therapychange and then cancel the therapy change. The user may provide thetherapy change by modifying one or more control parameters of the AMD.FIG. 22 is a flow diagram illustrating an example method that may beused to cancel a therapy change using a touchscreen interface. The usermay unlock the touchscreen display 2202 using a wake action and getaccess to a therapy change user interface 2204 (e.g., using a firstgesture), where one or more therapy control elements may be displayed.Next, an indication of a modification to a therapy control element maybe received 2206 by the user interface followed by a confirmation of themodification made 2208 (e.g., a second gesture). In response toreceiving an indication and confirmation of a modification to a therapycontrol element, the corresponding control parameter may be changed froma first setting to a second setting 2210. In some examples, once thechange is implemented 2210, the user may decide to cancel it, forexample, after realizing that requested change is erroneous. In theseexamples, the user may provide a third gesture 2212 on the touch screen.In response to receiving the third gesture from the user interface, thetherapy change procedure may restore the modified control parameter tothe first setting 2214. In some examples, the third gesture may be arestore gesture. In some cases, the restore gesture may be a swipegesture. In some examples the swipe gesture may be performed near or ina region of the therapy change user interface that is occupied by thetherapy control element (or a particular portion thereof). An example ofa restore swipe gesture may be a gesture performed from a starting swipeposition to an ending swipe position located closer to a left edge ofthe touchscreen than the starting swipe position. For instance, a usermay position a finger at a point on the touchscreen and drag the fingeracross at least a portion of the touchscreen towards a left edge (e.g.,reminiscent of a back arrow). It should be understood that othergestures are possible to indicate a restore gesture. In some cases, auser can define the gesture to be used as a restore gesture. In someembodiments, the restore gesture is received on a different userinterface screen than a therapy change user interface wherein one ormore therapy control element are provided. In various examples, therestore gesture is performed in the opposite direction from a therapychange confirmation gesture that confirms the modification to thetherapy control element.

In some examples, in order to cancel a therapy change request, therestore gesture has to be provided within a set time period after theconfirmation gesture is received by the user interface. In some suchexamples, during the set time period one or more dose control signalsmay be provided to the medicament delivery interface resulting in one ormore therapy change deliveries. In some cases, the restore gesture canbe received at any time after the confirmation gesture or therapychange. In some cases, the restore gesture restores the controlparameter modified during a therapy change to an immediately precedingvalue. In some cases, the restore gesture restores the control parameterto a value designated as a restore value (e.g., a default value or otherdesignated restore value) or to a most recent value that maintained thesubject's blood glucose level with a target setpoint range. Thedesignated restore value may be specific to a subject or AMD or may bedetermined based on clinical data for a set of subjects. The set ofsubjects may be subjects that share certain characteristics with thesubject using the AMD. For example, the set of subjects may be of thesame gender, similar age range, similar severity of diabetes, etc.

In some cases, the system may allow the user to modify a therapy changebefore confirmation. In these cases, the user may modify a therapycontrol element for a second time to change the corresponding controlparameter from a second setting to a third setting.

In some examples, the third setting may be the same as the firstsetting. In some cases, the first setting or the third setting may be adefault setting. In some cases, the first setting or the third settingmay be a restore setting.

In some examples, the user may be able to cancel a therapy changedelivery after confirming the therapy change and before a therapydelivery based on new settings. In some such examples, an alert maynotify the user that a therapy delivery based on new settings will occurshortly. FIG. 23A is an illustration of a touchscreen display 2300alerting the user that the delivery of one or more medicaments willoccur. The alert may be accompanied by sound or vibration effects. Here,the alert informs the user 1827 a delivery of medicament will occur in 2seconds 2305. The touchscreen display 2300 is further allowing the user1827 to perform a gesture to cancel the therapy delivery. The gesture tocancel the delivery is a touch movement that starts at the less-thansymbol 2310 and swipes left across the “Cancel” text. In the embodimentshown in FIG. 23A, a single gesture by the user 1827 may cancel thetherapy change. In some cases, input of the wake signal, the firstgesture, the therapy change selection, and the second gesture are allrequired to cancel a therapy that is being delivered.

In some examples, the user may be able to cancel a therapy changedelivery triggered based on therapy change made by the user. In theseexamples, the user may get access to the user interface using a wakeaction and provide a gesture to cancel the ongoing therapy deliverybased on a therapy change delivery.

FIG. 23B is an illustration of a touchscreen display 2350 showing that amedicament is being delivered to the user 1827. The text “Delivering”2355 informs the user 1827 that a medicament is currently beingdelivered to the user 1827. The progress bar 2360 is a graphicrepresentation of the progress of the delivery. As shown in FIG. 23B,the delivery is only starting, and zero progress has been completed. Thetouchscreen display 2350 is allowing the user 1827 to perform a gestureto cancel the delivery, which includes interrupting and discontinuingthe delivery if it had already begun but has not yet been completed. Thegesture to cancel the delivery is a touch movement that starts at theless-than symbol 2365 and swipes left across the “Cancel” text. In someexamples, a therapy change delivery 1807 may be canceled by an input bya user input comprising a wake action followed by a series of touchinputs (e.g., gestures, alphanumeric inputs and the like).

Additional embodiments relating to interacting with an ambulatorymedicament device that can be combined with one or more embodiments ofthe present disclosure are described in U.S. Provisional Application No.62/874,950, which was filed on Jul. 16, 2019 and is titled “PREVENTINGINADVERTENT THERAPY CHANGES ON AN AMBULATORY MEDICAL DEVICE,” thedisclosure of which is hereby incorporated by reference in its entiretyherein for all purposes, and in U.S. Provisional Application No.62/874,954, which was filed on Jul. 16, 2019 and is titled “CAPACITIVETOUCH WAKE BUTTON FOR AN AMBULATORY MEDICAL DEVICE,” the disclosure ofwhich is hereby incorporated by reference in its entirety herein for allpurposes.

Automatic Resumption of Medicament Delivery Following Manual Suspension

In some cases, it may be desirable to suspend operation of theambulatory medicament device (AMD) or to suspend at least the deliveryof one or more medicaments by the AMD to a subject for a period of time.For example, it may be desirable to suspend an operation associated withthe delivery of medicament when the medicament reservoir or cartridge inthe AMD is empty or needs to be replaced. As another example, it may bedesirable to suspend delivery of medicament when the ambulatorymedicament device is removed or is being moved to another site on thesubject. In yet another example, it may be desirable to suspend deliveryof the medicament when the subject is taking or ingesting anothermedicament that may produce a contraindication with the medicamentprovided by the AMD. In some cases, when a subject suspends thetreatment delivered by an AMD, the subject may forget to resume thetreatment delivered by the AMD. In some cases, the health condition ofthe subject may deteriorate during the suspension period requiringtherapy delivery to resume prior to the end of the suspension period. Assuch, there is a need for AMDs that allow subjects to safely suspendtreatment for temporary amounts of time (e.g., temporary suspensionperiod) and are capable of automatically resuming the medicamentdelivery if necessary. Suspending delivery of the medicament can includethe processor of the AMD not generating a dose control signal during thetemporary suspension period.

In some embodiments, the AMD may support a therapy suspension andresumption procedure allowing a user (e.g., the subject, a parent orguardian) to suspend all therapies or a subset of therapies for a periodof time defined by the user as well as automatic resumption of one ormore therapies at the end of the requested suspension period (e.g.,temporary suspension period) or when a threshold condition is met (e.g.,a threshold condition associated with the health condition of thesubject). In some such embodiments, the AMD can be a mono-hormonalinsulin pump. In some other embodiments, the AMD can be a bi-hormonalpump capable of administering insulin and a counter-regulatory agent(e.g., glucagon).

In AMDs that support therapy suspension, inadvertent activation and/orresumption of therapy delivery can be dangerous (e.g., when the AMD isan insulin and/or glucagon infusion device). In some examples tomitigate this risk, the AMD may be configured to avoid inadvertentsuspension or resumption of therapies. For example, inadvertentactivations of suspensions of medicament delivery may be prevented byrequiring a user to perform gestures (e.g., on a touchscreen display orother types of user interface), to suspend and/or resume therapydelivery by the AMD. In some examples, the gestures may be entered at aparticular prompt provided on a user interface to activate or resume atherapy suspension.

One particular application of the therapy suspension with automaticresumption feature in an AMD can be in the field of diabetes drugdelivery. For example, the subject may need the ability to suspenddelivery of insulin during situations such as exercise, which has ablood glucose lowering effect. Suspension of insulin delivery canprevent a subject from entering a hypoglycemic state (extreme low bloodglucose), which carries severe complications. Once the therapy issuspended the user may be at the risk of entering a hyperglycemic state(high blood glucose that may result in complications such as diabeticketoacidosis or neurovascular complications), if the user forgets toreactivate the drug delivery after exercise. Further, the subject'sblood glucose level may raise above or below a dangerous level duringthe period of exercise. In these situations, the automatic medicamentdelivery resumption may improve the health of the subject.

In certain cases, the AMD may suspend one or more therapy deliverieswhen the AMD receives an indication that therapy (e.g., delivery ofmedicament) is to be suspended. The indication that therapy is to besuspended may be a command from a user. Often the user is the subject,but the user may also include other users that may have a say orinterest in the care of the subject. For example, the user may be aclinician or other healthcare provider, or a parent or guardian.

In some examples, the indication that the therapy or medicament deliveryis to be suspended may be a command received via a user interface of theAMD or from another device that provides the user with an interface torequest that medicament delivery be suspended. For example, the devicemay be a smartwatch, smartphone, laptop or desktop, or other controldevice that can communicate via a wired or wireless connection with theAMD.

In some cases, the indication that the therapy or medicament delivery isto be suspended may be received from the AMD itself. In some suchembodiments, the AMD may suspend therapy or medicament deliveryresponsive to determining that one or more components or modules of theAMD do not satisfy a minimum requirement for operation. For example, ifthe quantity of medicament available to the AMD device drops below athreshold (e.g., the cartridge or reservoir is empty or below a minimumdosage amount), a signal may be generated to suspend medicamentdelivery. In some embodiments, suspension of therapy occurs based on aloss of a sensor signal, such as the loss of a glucose level signal.

FIG. 24 illustrates the interconnection among modules and proceduresinvolved in receiving, accepting and/or canceling a therapy suspensionrequest, in an example AMD. In some examples, these procedures may beimplemented in the CCM 2428 (and/or 610) of the AMD. In someembodiments, a request for suspending one or more therapies (e.g.,delivery of one or more medicament to the subject) can be made by a user2427 by providing an input 2429 (e.g., the start and stop time fortherapy suspension, selecting the type of therapy that should besuspended, and the like), through a therapy suspension user interfaceprovided by the user interface module 2408 having, for example, a wakeinterface 2422, touchscreen display 2424, and/or alphanumeric pad 2426.The therapy suspension user interface may send a suspension requestalong with the corresponding information to CCM wherein the suspensioncontrol procedures 2436, implemented in CCM, process and send a therapysuspension signal to the device and subject monitoring and controlprocedures 2432. In some examples, the AMD can generate an alert priorto suspending delivery of the medicament to the subject. The alert canindicate a suspension start time at which the delivery of the medicamentwill be suspended. In some examples, in order to prevent therapysuspension request inputs 2429 that are inadvertent, the therapysuspension control procedures 2436 may include a therapy suspensionrequest verification procedure to verify the therapy suspension requestsreceived from the user interface module 2408 or other devices that maycommunicate with the AMD via wired or wireless links (e.g., smartwatch,smartphone, laptop or desktop).

In some examples, when the subject monitoring and control procedures2432 receives the request for therapy suspension from the therapycontrol procedures 2436, it may send a signal to the medicament dosecontrol procedures 2430 indicating that no dose control signal should besend to the medicament delivery interface 2406 during the periodrequested by the user 2427.

In some cases, after receiving a request for suspending the medicamentdelivery, the AMD may delay the medicament delivery suspensionresponsive to determine that a medical condition of the subjectsatisfies a threshold medical condition. For example, the device andsubject monitoring and control procedures 2432 may receive a signal fromthe subject sensor (e.g., a CGM sensor) indicating that blood glucoselevel of the subject is above a threshold level and therefore do notsuspend the medicament (e.g., insulin) delivery at a time request by theuser. In some such examples, the AMD may suspend the therapy once itdetermines that medical condition of the subject is improved and doesnot satisfy a threshold medical condition anymore.

In some cases, if during the suspension period, certain pre-set orresumption conditions (e.g., one or more medical conditions of thesubject) are satisfied, the device and subject monitoring and controlprocedures 2432 automatically resume the therapy delivery by sending asignal to the medicament dose control procedures 2430 that generates andprovides a dose signal to the medicament delivery interface 2406. Insome examples, a dose control signal can be generated at a nextscheduled dosage period after determining that a resumption conditionhas occurred as discussed herein. In some examples, a dose controlsignal can be generated immediately after determining that theresumption condition has occurred. In some examples, the AMD cangenerate an alert responsive to determining that a resumption conditionhas occurred. The alert can indicate that a medical condition of thesubject satisfies a threshold medical condition. In some examples, ifduring the suspension period, the AMD determines that the level of oneor more analytes in subject's blood and/or interstitial fluid above orbelow a set threshold (e.g., based on the signal received from a subjectsensor 2420), it may resume the medicament delivery to the subject 2427by a sending a dose control signal to the medicament delivery interface2406. For example, if the signal received from a glucose sensor (e.g.,CGM sensor) indicates that the blood glucose level of a subject is abovea certain threshold level, it may resume the delivery of insulin to thesubject to reduce the level of glucose in subject's blood. In somecases, if the signal received from a glucose sensor (e.g., CGM sensor)indicates that the blood glucose level of a subject is below a certainthreshold level, it may resume the delivery of insulin to the subject toreduce the level of glucose in subject's blood. In some examples, whenif during the suspension period, if a medical condition of the subjectsatisfies a threshold medical condition, the AMD may generate an alertindicating that the medical condition has satisfies a threshold medicalcondition. In some such examples, the AMD may display the alert on auser interface of the AMD and/or a user interface of another deviceconnected to the AMD (e.g., a local or remote electronic device that iswirelessly connected to the AMD).

In order to prevent inadvertent activation of a suspension, the user mayinitiate a therapy suspension request starting with a wake action (e.g.,received by the wake interface 2422 and processed by the wake controlprocedure 2434), that activates the user interface module 2408. Using afirst interaction with a user interface (e.g., a touchscreen display)the user may unlock a therapy suspension user interface where theinformation pertaining therapy suspension is provided. Next, the usermay confirm the requested therapy suspension using a second interactionwith the user interface. In some examples, the system may allow accessto the therapy suspension user interface and accept the suspensionrequest, only if the first and second interaction with the userinterface are both verified by the therapy suspension control procedure2436.

In some examples, the therapy suspension control procedure 2436 mayreceive the request for suspension and suspension information fromanother local or remote device connected (e.g., wirelessly) to AMD. Forexample, a user may use a smart watch or smart phone to send a therapysuspension request to the AMD.

The suspension information provided by the user may include a set ofparameters needed for a suspension. For example, the suspensioninformation may include the dates and/or times for starting and endingthe therapy suspension, threshold values needed to define a thresholdcondition that may trigger an early resumption of the therapy delivery,and the like. In some examples, suspension information may indicate thatthe suspension of therapy should happen at a particular time (e.g.,suspension start time) or after a particular event (e.g., after the nextdose of medicament is delivered or after the condition of the subjectreaches a particular state, such as the middle of a desired bloodglucose range). In some examples, the threshold values may be associatedwith input provided by the subject sensor 2420 or other types of sensorsthat may be used to monitor one or more parameters associated with thehealth condition of the user 2427.

The parameters for a suspension may include the start and stopconditions for a suspension. The start condition for a suspension may bea condition that, when met, activates a suspension. In some suchexamples, the start condition is met when a timer runs out. Similarly,the stop condition is a condition that, when met, ends the suspension.In one example, the stop condition is met when a timer runs out (e.g.,temporary suspension period). In another example, the stop condition ismet when a threshold is met. A threshold may be related to a measurementtaken by AMD (e.g., by a subject sensor 2420), such as a measured bloodglucose level of the subject 2427. The threshold may be met if the bloodglucose level goes above, goes below, or matches a set blood glucoselevel. In some examples, multiple conditions may be included in thesuspension information received from the user. For example, a timecondition and a threshold condition may be set simultaneously. In suchexamples, the suspension may end sooner than the set time, for example,if the glucose concentration of the user meets a threshold.

In some cases, the request to suspend therapy may include an indefinitesuspension period. In other words, the request may not include a timeperiod specified by a user or an identity of a resumption condition(e.g., without or no user action to trigger the resumption condition).In some cases, the indication may include a request to temporarilysuspend delivery of therapy for a defined period of time (e.g.,temporary suspension period) or until a further interaction or eventoccurs. Thus, the resumption condition can include an expiration of time(e.g., expiration of a temporary suspension period) or an active event(e.g., a command or a determined condition of a subject). Further, thetherapy to be suspended may include any type of therapy. For example,the therapy to be suspended may be the suspension of the delivery ofmedicament, which may include insulin, counter-regulatory agent (e.g.,Glucagon), or both insulin and a counter-regulatory agent. In somecases, the AMD may be capable of and/or configured to administermultiple medicaments (e.g., both insulin and a counter-regulatoryagent). In some such cases, the request to suspend therapy may include arequest to suspend one (e.g., insulin or the counter-regulatory agent)or both of the medicaments.

In some examples, the interactions with the user interface may includethe selection of an icon, a series of taps or inputs, one or moregestures (e.g., a swipe or other simple or complex movement across thetouchscreen), performing a pattern or sequence on the touchscreen (e.g.,drawing an image), a multi-touch or multi-input interaction, acombination of the foregoing, or any other type of interaction with atouchscreen, or portion thereof. The series of inputs may be anycombination of touch movements, touch points, numerical characters,alphabetical characters, and other symbols. In some examples, the firstand/or second user interactions may include a predetermined sequence ofnumerical or alphabetical inputs. In some examples, a series of multipleinputs, the range of parameters for an input may be dependent on otherinputs in the series. For example, required start position of a touchmovement may be dependent on the position of the previous touchmovement. The time that the series of inputs are entered may also be apart of the range of parameters. For example, a series of inputs mayneed to be entered in no less than 3 seconds or more than 3 seconds, andno more than 15 seconds or less than 15 seconds. In some cases, a visualguide may assist the user in generating the user interaction. Forexample, one or more arrows or images may be presented to the user toguide the user in providing the command to suspend the delivery oftherapy.

Further, one or more of the interactions may include interacting with asensor as an optical sensor (e.g., visible light or IR sensor),biometric sensor (e.g., a fingerprint or retinal scanner), a proximitysensor, a gyroscope, or a combination of accelerometer and gyroscope,and the like. Also, in an exemplary embodiment, the second userinteraction may be made through a wireless signal such as RFID orBluetooth. In some embodiments, the second user interaction may includereceiving a selection of an indicator box that correspond to eitherinsulin or glucagon and receiving a predetermined sequence of numericalinputs in order to deliver the therapy change selection.

The type of user interaction that unlocks the touchscreen, providesaccess to a therapy suspension user interface or confirms a suspensionrequest may be the same or may differ.

In an exemplary embodiment, the system may have a time-out such that ifno interaction occurs for a set period of time at each step during thetherapy suspension request process, the user interface will turn off andthe therapy suspension request process has to start again. In oneimplementation of the time-out, if no interaction occurs for more than30 seconds after the system is waked/unlocked before the second userinteraction is received by the user interface, the user interface willbe deactivated.

FIG. 25 is a flow diagram illustrating an example method for receivingand implementing a suspension request, which may be implemented by anAMD. In this example the user may use a touchscreen interface to requestand confirm a therapy suspension. Once the user activates thetouchscreen using a wake action 2502, the AMD may wait for a firstgesture on the touchscreen. After the user provides the first gestureand the gesture is verified by the therapy suspension control procedures2436, a therapy user interface may be activated 2506 where the user canrequest a therapy suspension and provide 2508 the suspension information(e.g., a start day/time (e.g., suspension start time) and stop day/time(or suspension period) and/or a resumption condition). Next, the AMD maywait for second gesture on the user interface 2510. If the secondgesture is received and verified by the therapy suspension controlprocedure 2436, the therapy delivery will be suspended 2512. If thesecond gesture is not received or not verified by the therapy suspensioncontrol procedure 2436, the therapy suspension control procedure 2436,may determine if a set time has passed since receiving the therapysuspension request 2514. If it is determined that a set time has passedsince receiving the therapy suspension request, the request will becanceled, and the touch screen will be locked 2516. If it is determinedthat time from receiving the therapy suspension is less than a set timethe AMD may wait for the second gesture to be received.

In some examples, once a wake action is received 2502, the AMD mayautomatically activate a therapy suspension user interface 2506, withoutthe need for a first gesture 2504. In these examples, once the requestfor therapy suspension is received 2508, a gesture (e.g., a firstgesture) may be required to verify the request. In some such examples,once the therapy delivery is suspended, a second gesture may stop asuspension before any of the conditions of the stop parameter are met.This allows the user the versatility of being able to modify asuspension that has been activated.

FIG. 26 is an illustration 2600 of a plurality of example screens thatmay be displayed on the touchscreen display 2424 of an AMD when a useractivates a therapy suspension user interface. Screen 2602 shows ascreen an AMD may display to a user 2427 once the user provides a wakeaction. The therapy suspension system 600 is not limited to the displaysshown in FIG. 26. Various other screens may communicate, to the user2427, the same information shown in FIG. 26. The screen 2602 allows theuser 2427 to select various functions. The pause button 2603, shown onscreen 2602 is a function that suspends the delivery of a medicament tothe user 2427. When the pause button 2603 is selected, the pause screen2604, may appear on the touchscreen display. The pause screen 2604allows the user 2427 to select a duration of the medicament suspension(e.g., suspension period or temporary suspension period). The AMD 600may display various interfaces to allow the user 2427 to select aduration of the medicament suspension. The example pause screen 2604shows a simple interface, giving the user 2427 one of two durationoptions (e.g., 1 hour and 2 hours).

When the user 2427 makes a duration selection on the pause screen 2604,the pause screen 2606 shows the duration 2607 that the user 2427selected (e.g., in the figure the user 2427 selected 1 hour. Thus, themedicament delivery is suspended for 1 hour after the suspensionbegins). The pause screen 2606 has a prompt 2608 for the user to make agesture to confirm the requested suspension before the medicamentsuspension begins. As shown by the prompt 2608, the user 2427 is beingprompted to swipe right across the bottom of the screen. Once the user2427 performs the gesture to begin the medicament suspension, thesuspension screen 2610 is displayed on the touchscreen. The suspensionscreen 2610 informs the user 2427 that the medicament is paused. On thesuspension screen 2610, the user 2427 has the option of performinganother gesture to unlock 2612 the AMD in the event that the user wantsto end the suspension and/or access to other functions of the AMD 600.

Suspending the medicament delivery may occur by not generating a dosecontrol signal to deliver a dose of medicament during the suspensionperiod. Alternatively, or in addition, suspending the medicamentdelivery may occur by sending a signal to the medicament deliveryinterface, to cease providing therapy or medicament to the subject.

In some cases, the AMD may not immediately suspend therapy uponreceiving a command to suspend therapy. For example, if the AMD is inthe process of delivering medicament or determines that a condition ofthe subject indicates that medicament may soon be required to maintainthe subject's condition (e.g., blood glucose) within a particular state(e.g., within a desired blood glucose range), the suspension of therapymay be delayed until at least such time that medicament is not beingdelivered, is predicted to not be required during the suspension period,or the next therapy has been delivered. In some such cases, the AMD mayinform that user that the suspension of therapy is being delayed.Further, the AMD may indicate the reason for the delay. In some cases,the user may be able to override the delay and request immediatesuspension of therapy. For example, if the user is replacing themedicament cartridge, the user may override an indication that thesuspension of therapy should be delayed to, for example, a suspensionstart time. In some cases, the requested start time may be overridden bya determined condition of the subject. The AMD can delay the suspensionof medicament delivery responsive to determining that a medicalcondition of the subject satisfies a threshold medical condition.

The suspension of therapy or the suspension of the delivery ofmedicament may continue until a resumption condition occurs. In certaincases, when a resumption condition is met, the suspension period mayautomatically end without action by the user or subject.

The resumption condition may include the expiration of a time period(e.g., temporary suspension period), a command from a user (e.g., thesubject), detection that the AMD devise satisfies a condition (e.g.,that medicament has been refilled), that the condition of the subjectmeets certain criteria (e.g., the subject's blood glucose level dropsbelow a threshold range or rises above a threshold range), or any othercondition that may satisfy the reason for suspension of therapy or thatoverrides the request for suspension of therapy. For example, the drugdelivery device may be configured to automatically resume drug deliverywhen a glucose threshold is reached or exceeded. This threshold could beset to 300 mg/dl for example. The resumption condition may includedetection of an impending risk of hypoglycemia or hyperglycemia, or ahypoglycemia or hyperglycemia event. Further, the resumption conditionmay include a meal announcement, or an “exercise concludedannouncement,” a motion sensing event, a pause of other administeredmedicament, a conclusion of an undefined suspension length (e.g., duringcartridge change), a speed-based resumption event, a location-basedresumption, a remote resumption in case of an emergency (e.g., commandedfrom caregiver admin software or clinician), or any other type ofresumption event. In some cases, the resumption condition can include acombination of criteria.

In some cases, automatically resuming therapy may include discontinuingthe suspension of therapy before the expiration of the suspensionperiod. For example, if a condition that caused therapy to be suspendedis resolved prior to the expiration of the suspension period, therapymay be resumed.

In some cases, when a resumption condition (provided by the user) ismet, the AMD may confirm that one or more additional condition of theambulatory medicament device are satisfied before therapy is resumed.For example, if the AMD determines that medicament has not been refilledor if there is a problem with the refill (e.g., cartridge is incorrectlyinstalled), the AMD may continue to maintain the suspension of therapydespite the trigger to resume therapy.

FIG. 27 is a flow diagram illustrating an example method for automaticresumption of a suspended therapy that may be implemented by an AMD.Once a therapy suspension has been requested and confirmed by a user(e.g., using the procedure illustrated in FIG. 24) 2702, the AMDsuspends the delivery of one or more therapies 2704 selected forsuspension at suspension initiation time received as part of thesuspension information. For example, therapy suspension controlprocedures 2436 may deactivate the medicament dose control procedures2430 using the device and subject monitoring and control procedures2432. During the suspension period, the therapy suspension controlprocedures 2436 may continuously monitor the system clock and thesubject and device condition (e.g., using medicament dose controlprocedure 2430).

If the therapy suspension control procedures 2436 determine that thetime passed since the suspension initiation is less than the requestedsuspension time period 2706 and none of the conditions for resumptionhas been met 2708, the therapy suspension may continue. If a suspensionresumption condition occurs, the one or more suspended therapies will beresumed 2712.

If the therapy suspension control procedures 2436 determine that thetime passed since the suspension initiation is equal to the requestedsuspension time period 2706, or one or more resumption conditions havebeen met 2708, it may check other AMD or subject conditions (notincluded in the therapy suspension information), in order to determinewhether the therapy delivery can be safely resumed 2710. If it isdetermined that the therapy delivery cannot be safely resumed, an alertmessage may be sent to the user interface to inform the user about thereason for such determination 2714. If it is determined that the therapydelivery can be safely resumed, the one or more suspended therapies willbe resumed 2712.

In some examples, a therapy suspension may be ended before the one ormore conditions to end the suspension are met if a third interactionwith a user interface (e.g., a gesture) is detected. The third userinterface interaction may be detected by the user interface module 2408and sent to the therapy suspension procedures 2436. If the therapysuspension procedures 2436 verify that the third interaction with theuser interface is a predetermined third user interface interaction, thedevice and subject monitoring and control procedures 2432 may activatethem medicament dose procedures 2430. This allows the user theversatility of being able to end a suspension that has been activated,during the suspension period set by the user before the confirmation(second interface with the user interface). In some cases, a user maydecide to end a therapy suspension to modify one or more suspensionconditions set prior to activation of the current therapy suspension. Insome examples, user may decide to end a therapy suspension due to changein user's health condition not included in one or more therapyresumption conditions provided before activating the current therapysuspension. In some examples, the user may need to provide a fourthgesture to end the suspension before the one or more conditions to endthe suspension are met. Like the first and second gestures, the thirdand fourth gestures may be simple or complex.

FIG. 28 is an illustration 2800 of a plurality of example screens thatmay be displayed on the touchscreen display 2424 of an AMD when a user2427 resumes a suspended therapy. Screen 2802 informs the user that thedelivery of medicament is currently in a suspended mode. The screen 2803also shows the user 2427, the current glucose concentration in user'sblood. In some examples, various vital measurements that are useful tothe user 2427, may be displayed on the screen 2802 that may be displayedduring therapy suspension period. In one implementation, the therapysuspension ends if the glucose concentration of the blood of the usermeets or passes a threshold.

The screen 2804, which may be activated by a user interaction (e.g., agesture on the touchscreen display), allows the user 2427 to select andexecute various functions on the AMD 600. For example, the resume button2805 may be used to end a therapy suspension. When the resume button2805 is selected by the user, a resume screen 2806 may appear on thetouchscreen display. The resume screen 2806 has a prompt 2807 thatprompts the user 2427 to perform a gesture. In the examples shown, theuser 2427 is being prompted in the resume screen 2807 to swipe rightacross the bottom of the resume screen 2806. The requirement to performthe gesture to resume medicament delivery prevents the user 2427 frominadvertently resuming medicament delivery by the AMD.

Once the user 2427 performs the gesture to resume medicament delivery,the therapy suspension ends and a resumption screen 2808 appears on thedisplay indicating that the regular medicament delivery has beenresumed. Once the resumption screen 2808 has been displayed to the user2427 for a sufficient amount of time (to inform the user 2427 that thesuspension has been ended), a lock screen 2810 may be displayed. Thelock screen 2810 prevents the user 2427 from inadvertently executingmore functions on the AMD device 600 after resuming the medicamentdelivery.

With reference to FIG. 24, in some examples, if the therapy suspensionprocedures 2436 determine a resumption condition has been satisfied orreceive a user input 2429 from the user interface module 2408 indicatingthat therapy suspension should be ended, they may activate themedicament dose procedures 2430 using the device and subject monitoringand control procedures 2432. Subsequently, if the medicament dosecontrol procedures 2430 determine that a dose of medicament should besupplied to the user (at least in part based on the information receivedfrom one or more subject sensors 2420), it may provide a dose controlsignal to the medicament delivery interface 2406. In some examples, adose control signal can be generated at a next scheduled dosage periodafter determining that a resumption condition has occurred as discussedherein. In some examples, a dose control signal can be generatedimmediately after determining that the resumption condition hasoccurred.

In some cases, the AMD device may alert the user and/or the subject thattherapy is being resumed. This alert may occur before generating a dosecontrol signal and/or after or upon a resumption condition is satisfied(e.g., a suspension time expires).

Additional embodiments relating to suspending medicament delivery to asubject that can be combined with one or more embodiments of the presentdisclosure are described in U.S. Provisional Application No. 62/910,970,which was filed on Oct. 4, 2019 and is titled “METHOD FOR SUSPENDINGDELIVERY OF A DRUG INFUSION DEVICE WITH AUTOMATIC RESUMPTION OFDELIVERY,” the disclosure of which is hereby incorporated by referencein its entirety herein for all purposes.

AMD with Security Functionality

An ambulatory medical device (AMD), such as, but not limited to, anambulatory medicament device (e.g., an insulin pump), that provideslife-saving treatment to subjects, for example, based on the conditionof the subject, may include a user interface (e.g., a touchscreendisplay) that lets a user to modify the settings of the AMD. The settingmay include, but not limited to, a condition that triggers the deliveryof medicament to a subject, the quantity of medicament delivered when acondition is met, type of the medicament and the like. The setting mayalso include features of the AMD that may not be directly related to themedicament delivery (e.g., the screen brightness, an alarm sound, andthe like). In some examples, it is desirable to manage access to varioussettings of AMD in order to avoid inadvertent changes while enablingchanges that may be necessary for uninterrupted and proper operation ofthe AMD. For example, it may be desirable to limit the access to somesettings to certain authorized users (e.g., a healthcare provider) whileenabling access to some other settings to other authorized users (e.g.,the subject, a guardian or parent of the subject).

In many cases, a healthcare provider can modify the settings of the AMD.However, it is often desirable that a non-healthcare provider modify atleast some settings of the AMD. For example, when the AMD runs out of orhas below a threshold amount of medicament, it is often desirable that auser be able to refill or change a medicament cartridge without visitinga healthcare provider. In some cases, changing the medicament cartridgemay include interacting with a user interface and/or one or moresettings of the AMD. Another example of when it is desirable for anon-healthcare user (e.g., a subject, parent, or guardian) to modifysettings of the AMD is when the initial settings of the AMD are notproviding the desired effect (e.g., sufficient medicament, too muchmedicament, providing the medicament too slowly or too fast, etc.). Insome cases, normal maintenance of the AMD and/or subject may requireinteraction with the AMD settings and/or controls. For example, negativeconsequences may begin to occur when an AMD remains connected to asubject at the same site for more than a threshold period of time (e.g.,for more than 2-3 days, more than 5 days, more than a week, etc.). Thus,the AMD may need to be periodically moved from one site on the subjectto another site on the subject (e.g., from left-side to right-side, fromarm to leg, from stomach to back, etc.). The change in site location mayrequire interaction with settings of the AMD (e.g., pausing operationuntil the site change is completed).

Although, as explained above, there are a number of reasons it isdesirable to enable a user other than a healthcare provider (e.g., thesubject receiving therapy, a parent, or a guardian) to have access to atleast some user settings of an AMD, it is also desirable to regulateaccess to at least some of the AMD settings. For example, it isgenerally undesirable that a child (subject or otherwise), or a userbelow a particular age, have access to AMD settings that could causeharm to the subject if modified. Further, it may be undesirable forcertain subjects who have diminished mental capacity regardless of ageto have access to at least some AMD settings.

The user may be a subject receiving medicament or therapy, or may beanother user, such as a clinician or healthcare provider, or a parent orguardian of the subject.

One solution to regulating access to settings of the AMD is to implementa lock feature to require that a user provide a passcode, password, orother information before the user is permitted to modify a setting ofthe AMD, such as a control parameter. To simplify the discussion, thedisclosure will describe using a passcode. However, it should beunderstood that the passcode can be substituted for a password or anyother type of secret or semi-secret information. The user may enter asecurity code into the AMD or an intermediary device that the AMD and/orthe intermediary device may validate or verify matches the passcode toaccess certain functions of the AMD as discussed herein. If the securitycode cannot be validated after a predetermined number of security codeentry attempts, further security code entry attempts can be denied for aperiod of time. In some examples, when the AMD is in the locked state,it may continue delivering therapy to the subject at the same rate asunlocked state.

The lock feature may be activated by default or may be activated by auser. In some examples, the lock feature can be enabled through asetting in a control menu of the AMD device provided on a user interface(e.g., touchscreen display). The setting may include an on/off toggle(via, for example, a software interface element or a hardware interfaceelement) so when the toggle is on, a passcode (e.g., 4 to 8 numericdigits) may be required. In some cases, if the lock feature is on, thepasscode (e.g., a 4 to 8 numeric digit code) may be required to turn thelock feature off. When the lock feature is activated, the user mayprogram the AMD with a user passcode selected by the user.Alternatively, or in addition, the user passcode may be set in responseto a passcode change request. In some cases, a user passcode may expire.In such cases, a user may be required to generate a new passcode afterthe previous passcode expires or before the previous passcode ispermitted to expire. In some cases, the AMD may periodically generate anew passcode (e.g., an override passcode), or may generate the newpasscode at a time when a user supplies the passcode.

In some cases, the user interface element used for accessing a userinterface that enables changing one or more settings of the AMD maydiffer from a user interface for modifying the control parametersassociated with that setting. For example, a keypad may be used to entera passcode for unlocking a user interface for changing a controlparameter and a touchscreen may be used to modify the control parameter.

In some examples, when the lock feature is enabled, the user interfacescreen may look and function the same as if the lock feature were notenabled. In these examples, if the lock feature is enabled, when avisual guide for unlocking the device (such as, for example, a linearunlock slider, an arcuate unlock slider, or another unlock userinterface element) is activated, a passcode entry interface (e.g., akeypad user interface element) may be displayed. If either the userpasscode or another passcode (e.g., a global override passcode) isentered, the user interface may proceed as normal. Otherwise, the userinterface may revert back to the original lock screen.

In some examples, the user action that permits a user to change one ormore settings of the AMD may be different from the wake action thatactivates a user interface. For example, a wake action may be used toactivate a touchscreen display that may display a plurality of userselectable elements some of which may be accessible without a passcode.In such examples, a subset of the user selectable elements, for examplethose allowing the user to change therapy control parameters, parametercontrol elements, or user parameter control elements, may require apasscode. In some cases, access to each user parameter control elementmay require a different passcode. In some examples, providing a passcodeto an AMD in locked state may directly enable access to a subset ofparameter control elements. In some examples, after the user interface(e.g., a touchscreen display) is activated, a first gesture may berequired before a plurality of user selectable elements are presented.

To help recall the passcode, the passcode may be set by the userenabling the user to select a passcode the user is more likely toremember. However, regardless of who sets the passcode, there is a riskthat the user will not remember the passcode. Due to the nature of thedevice (e.g., a device that may provide life-saving treatment), it isdesirable that certain user's not be restricted from accessingparticular settings of the AMD, and be able to quickly (e.g., withinseconds, minutes, prior to a next therapy event, or before harm mayoccur to the subject) obtain access to the particular settings whenrequired. Thus, while some non-medical devices may implement lockoutperiods or other restrictions to prevent a malicious user from trying tobrute-force determine a passcode for a device, such features may begenerally undesirable for an ambulatory medicament device. Accordingly,embodiments disclosed herein include an AMD that includes an overridepasscode that enables access to the AMD (or control settings thereof)regardless of whether the user passcode is provided.

In some examples, the passcode or the override passcode can be a seriesof taps, series of inputs, a complex or a simple gesture (e.g., a swipeor other movement across the touchscreen). The series of inputs may beany combination of touch movements, touch points, numerical characters,alphabetical characters, and other symbols. In some examples, the timethat the series of inputs are entered may also be a part of the range ofparameters. For example, a series of inputs may need to be entered in noless than 3 seconds or more than 3 seconds, and no more than 15 secondsor less than 15 seconds. One example of the complex gesture is a swipe.

In some examples the passcode or the override passcode may compriseperforming a pattern or sequence on the touchscreen (e.g., drawing animage), a multi-touch interaction or any other type of interaction witha touchscreen, or portion thereof. Another example of a complex gestureis entering a predetermined sequence of touches. In some cases, thepasscode may include a quiz or set of questions.

In some examples, the AMD may be configured to receive therapy settingsor modifications to therapy settings from an intermediary device via acommunication connection. For example, the intermediary device may be alaptop or desktop computer, a smartwatch, a smartphone, or a hardwarecontrol device that may be configured to interact with the AMD. In somecases, this feature may be supported in addition to providing the userwith options of modifying one or more settings with a user interface ofthe AMD. The communication connection between the intermediary deviceand the AMD may be a direct connection via, for example, Bluetooth®, ora connection via a network, such as over a local area network or a widearea network. In some such cases, the AMD may include a wirelesstransceiver, such as an NB-LTE transceiver, a Wi-Fi transceiver, or aBluetooth transceiver. The intermediary device, that provides the userwith a user interface to modify settings of the AMD, include any type ofdevice (e.g., a computing device) that can communicate with an AMD. Insome cases, access to the user interface of the intermediary device thatallows modifying AMD settings may require a passcode. In some examples,the passcode required for changing one or more settings via anintermediary device may be different from the passcode required forchanging the same settings directly using the AMD's user interface.

In some such cases, a user may provide a user-generated passcode or anoverride passcode via an interface of the intermediary device. Theintermediary device may then provide the user-generated passcode or theoverride passcode to the AMD via the network connection between thedevices.

In some examples, even if the AMD is in locked state, certainintermediary devices may have access to user interfaces that may be usedto change one or more settings (e.g., therapy settings) of the AMD. Forexample, the smart phone of a guardian or a parent of the subject may beused to change one or more settings of the AMD while the AMD is in thelocked state.

Embodiments disclosed herein are applicable regardless of whether theuser interface for modifying therapy settings or the configuration ofthe AMD device is generated or presented by the AMD to the user or viaanother device.

In some examples, the AMD may be configured to receive a passcode fromor via a computing system (e.g., a cloud computing system). In theseexamples, the AMD may receive passcode through a direct end-to-endconnection (e.g., a wireless connection over a wide area network)established with the computing system. In some such examples, anothercomputing device (e.g., a smartphone, a laptop, a personal computer, andthe like) connected to the computing system, may send a passcode to theAMD and be able to change one or more settings of the AMD if thepasscode is validated by the AMD.

In cases where the user cannot recall the user passcode, the user canobtain access to the user interface that permits modification of thecontrol parameter by supplying an override passcode. In some examples,the override passcode may be a universal fixed passcode (e.g., an8-digit override passcode) that can be used instead of the user setpasscode. The override passcode can be stored in the AMD at the time ofmanufacture and may be shared among multiple AMDs (e.g., a globaloverride passcode), or may be unique to a particular AMD. The overridepasscode may be managed by the manufacturer or by a third-party service.To obtain the override passcode, the user may contact the manufactureror passcode managing service. Generally, enabling the passcode may existto prevent a user with a diminished mental capacity (e.g., a child) frommodifying settings of the AMD. Thus, security may be less of a concernand any user can contact the manufacturer or passcode managing serviceto obtain the override passcode. In some such cases, a single globaloverride may be used for all devices produced by the manufacturer.However, in some cases, a level of security may be desired. In some suchcases, it may be necessary for the user to authenticate him or herself.Further, the user may be required to provide a serial number of the AMD.In some cases, each model or each unit of the AMD may have a differentoverride passcode. The user may provide authorization information and aserial number of the ambulatory medicament device to the manufacturer orpasscode managing service to obtain the override passcode.

In some examples, the AMD may periodically generate a new overridepasscode or may generate an override passcode at a time when a usersupplies the passcode. In these examples, the AMD may use the sameparametric values to generate the override passcode as another devicemay use thereby ensuring a match between the override passcodes.Advantageously, in some cases, by using an algorithm to generate theoverride passcode, the override passcode can be obtained regardless ofwhether a user is able to contact a manufacturer or other passcodemanaging service. In some cases, the user may generate the overridepasscode without access to a network or phone using, for example, usinga computing device that can access a common parameter value as the AMD.

In some cases, the override passcode may change over time or be arotating passcode. For example, in some cases, the override passcode maychange at periodic intervals every thirty seconds, every minute, everyhour, etc. In some such cases, the override passcode may be determinedfrom an algorithm executed by an application. The AMD may store a copyof the algorithm in a memory of the AMD and may execute the algorithm todetermine the override passcode that is currently valid. A copy of thealgorithm may be executed by another computing device accessible by theuser. The output of the algorithm may be based on a value that iscommonly accessible by the AMD and the copy of the algorithm accessibleby the computing device. For example, the output of the algorithm may begenerated based on a time, a user identifier, a provided value, or anyother factor that may be used to repeatedly generate the same output. Insome cases, the override passcode may be calculated based on acombination of factors. For example, the override passcode may becalculated based on a portion of a serial number or model number for theAMD and the time. The determination of the override passcode may becalculated by the AMD, a computer server, and/or an application on auser device.

In some cases, the override passcode can be automatically received bythe AMD (e.g., after a user requests an override passcode). Thus, a usermay not need to see or enter the override passcode. In some cases, theoverride passcode may be transmitted to another device of the user(e.g., a smartphone or laptop). For example, the override passcode canbe texted to a user's smartphone, for example, for the user to thenenter the override passcode on the AMD. In some cases, the overridepasscode may be received in a coded manner that may not beunderstandable by a child or user with diminished mental capacity.

In some cases, the override passcode may be linked to a location. Forexample, the override passcode may only be enterable at a healthcareprovider's office or at the subject's place of residence. Thedetermination of the location of the AMD be based on a geolocationsystem (e.g., a Global positioning System (GPS)) available to the AMD.

In some examples, at least for a subset of therapy settings, thepasscode may provide a second level of security in addition to otherinteractions with the user interface (e.g., a first and a second gestureon a touchscreen display) that may be used to change the therapysettings and/or accept the change made to a therapy setting. In someexamples, at least for a subset of settings, the passcode may be usedinstead of other interactions with the user interface (described above).

As mentioned above, interacting with the user interface may cause theAMD, or other devices that can modify a control of the AMD, to present apasscode input screen to the user. The user may enter the passcode tounlock additional user interface features including, for example, a userinterface that enables the user to modify at least one control parameterof the AMD. The control parameter can be modified based on aninteraction with a parameter control element of the user interface.Further, modification of the control parameter may cause modification ofthe generation of a dose control signal that is generated by a controlalgorithm based at least in part on the control parameter.

In some embodiments, the AMD may have an advanced therapy screen, orother user interface, that permits a healthcare provider, or other user,to obtain additional details or advanced settings relating to therapyprovided by the AMD. Although the advanced therapy screen or state maygenerally be intended for a knowledgeable user, such as a clinician, insome cases, any user may obtain access to the advanced therapy screen orstate. The advanced therapy screen (displaying, for example, advancedsettings of the AMD) may permit the healthcare provider to modifycontrol parameters (e.g., advanced control parameters via one or moreadvanced parameter control elements) that may not be modifiable by otherusers. For example, the healthcare provider may be able to controlparameters that relate to the calculation of a rate of insulinaccumulation, the rate the insulin diminishes within the blood of thesubject, the setting of a glucose setpoint, an aggression level orfactor of therapy relating to an amount of insulin provided when thesubject's glucose level is outside the setpoint range, or when theinsulin reaches a point of maximum concentration within the blood of thesubject (e.g., T_(max)).

Access to the advanced therapy screen may be limited by requirement of apasscode or advanced settings passcode via, for example, a user enteringa security code or an advanced settings security code (using for exampleone or more advanced settings parameter control elements) that can bevalidated or verified to match the passcode or advanced settingspasscode. The passcode or advanced settings passcode may be referred toas a clinician passcode to distinguish it from the user-generatedpasscode and/or the override passcode. This clinician passcode may ormay not be user generated. However, the clinician passcode may be aseparate passcode from the user-generated passcode that permits accessto the non-advanced therapy screen interface. Further, the clinicianpasscode may be separate from the override passcode that permits a userto override the user-generated passcode to obtain access to thenon-advanced therapy screen interface. In some cases, the clinicianpasscode may be used as an override passcode. In some examples, theclinician passcode can be valid for a period of time (e.g., set by asubject or another authorized user such as the guardian or apparent ofthe subject). The clinician passcode may expire after a predeterminedperiod. For example, the clinician passcode may be valid for a day, aweek, or a month (expiring at least once per day, per week, or permonth). In some examples, the AMD may allow certain authorized users toterminate the clinician access at any time.

In some cases, access to the advanced therapy screen or state may belimited to a particular period of time. After the time period expires,the AMD may automatically restrict access to the advanced therapy screenor state. In some cases, the window of access may be extended. Forexample, if the healthcare provider is continuing to interact with theadvanced therapy screen or state, the screen or state may remainaccessible.

In some cases, the advanced therapy screen may provide additionalfeatures. For example, while a user may be able to indicate that anamount of insulin provided for a meal or as a correction factor shouldbe higher or lower, the healthcare provider may be able to specificallyadjust the amount of insulin. Moreover, while a user's direction may ormay not be followed depending, for example, if the request exceeds athreshold or may cause blood glucose to not satisfy a setpoint range, anindication provided via the advanced therapy screen may be followedregardless, or may have a wider range or different threshold that maycontrol whether the instruction is followed. Further, the advancedtherapy screen may be used to temporarily pause therapy and/or mayprevent subject access.

In some cases, the manufacturer of the AMD may provide a remote unlocksignal that can be used to unlock access to the ambulatory medicamentdevice and/or to an advanced therapy screen or state of the AMD.

As described above, the passcode may be desired to prevent particularusers from inadvertently changing certain control parameters of the AMDdevice. However, features of the AMD that do not affect therapy mayremain accessible to a user when the AMD is in a locked state. Forexample, a user may be able to access therapy history, screen brightnesssettings or colors, or any other feature that is unlikely to harm asubject if modified in a particular manner. Further, as the passcodefeature is generally to prevent control parameter changes, the AMD mayprovide therapy and continue to provide therapy at the same rate andunder the same condition, whether or not the AMD is locked or unlocked.

When the AMD receives the user passcode or the override passcode, theAMD may validate the passcode. The passcode may be validated bycomparing the received passcode to a passcode stored in a memory of theAMD or generated by the AMD. If the passcode received from the user issuccessfully validated, the user may be granted access to a userinterface to modify one or more control parameters. In some cases, theuser may be requested to re-enter a passcode to confirm a change to acontrol parameter. In some examples, the user may be requested toprovide a gesture on a touchscreen to confirm a change to a controlparameter.

If the passcode is not validated, the AMD, or other control device thatcan provide access to control parameters of the AMD, may prevent accessto the user interface to modify the one or more control parameters. Insome cases, the user interface that presents the user with the abilityto enter the passcode may permit the user a particular number of triesor a particular number of tries within a particular time period to enterthe user passcode. If the correct user passcode is not entered withinthe provided number of tries or within the particular time period, theuser interface may enter a lock state (e.g., the screen will be turnedoff) and prevent further attempts to enter a passcode for at least aperiod of time. In some cases, the user passcode option may beindefinitely locked or blocked. In some such cases, the controlparameters of the AMD may only be accessible if the override passcode isprovided. Alternatively, or in addition, a user passcode of a differentuser may be used to provide access to the control parameters of the AMD.In some examples, if the correct override passcode is not entered withinthe provided number of tries or within the particular time period, theuser interface may block any attempt to change the override passcode forat least a period of time.

In some cases, once the passcode is successfully entered or validated, auser may deactivate the passcode feature of the AMD. Deactivating thepasscode feature may require use of a separate passcode or the overridepasscode in addition to the user passcode.

In some cases, the passcode may be optional or omitted based on thecomputing device connected to the AMD. For example, if the end-to-endconnection is established between a smartphone registered to aparticular user (e.g., a parent of the subject), the ambulatorymedicament device may unlock automatically without requiring a passcode.In some cases, the smartphone, or other computing device, mayautomatically provide the user-generated passcode or the overridepasscode to the AMD upon establishing a connection. In some cases, theAMD may automatically be unlocked when connected to a charger or when ina particular geographic area. For example, a geo-fence may be configuredin one or more locations, such as the subject's house or the clinician'soffice. When the AMD determines it is within the geo-fence, the AMD mayautomatically be unlocked. Similarly, when the AMD determines that it isnot within the geo-fenced region, it may automatically be locked. Thedetermination of the location of the AMD may be made based on ageo-location system, such as the Global Positioning System (GPS).

In some cases, after a certain number of unsuccessful passcodes areentered (e.g., after 5 tries), the user interface screen may be turnedoff or may accept only the global override passcode

Example AMD with Passcodes

FIG. 29 is a block diagram illustrating an example of theinterconnection among modules and procedures in AMD involved in changingthe settings of the AMD. In some cases, one or more settings of the AMDmay be changed using one or more parameter control elements2941/2943/2945 presented on one or more setting control screens2940/2942/2944 provided by the user interface module 2908. In someexamples, when the lock feature is activated, access to one or moresetting control screens 2940/2942/2944 and/or one or more parametercontrol elements 2941/2943/2945, may be protected by a passcode. Inorder to access one or more control parameter 2941/2943/2945, the usermay provide a security code for a passcode input 2933 (e.g., a securitycode for a user generated passcode or an override passcode), via theuser interface module 2908 (e.g., using a touchscreen display 2924 oralphanumeric pad 2926). Alternatively or in addition the user 2927 mayprovide a security code for a passcode input 2946 using an intermediarydevice 2923 (e.g., a laptop, a smart phone, and/or the like) that isconnected to the AMD (e.g., via a wired or wireless link). In someexamples, once a security code or an override security code is received(e.g., from an intermediary device 2923 or the interface module 2908),the security code may be transmitted to the control and computing unitof the AMD where a set of setting change control procedures 2935determines the validity of or verifies the security code by comparingsecurity code to the one or more user generated passcodes or passwords2939 or override passcodes or passwords 2937 stored in a memory of theCCM.

In some examples, the access to one or more setting control screens2940/2942/2944 and/or parameter control elements 2941/2943/2945 may bemanaged by the setting change procedures 2928. In some examples, thesetting change procedures 2928 may be changed and may be considered theadvanced settings as discussed herein, requiring a different passcodefor access from the passcode to access, for example, the one or moresetting control screens 2940/2942/2944 and/or parameter control elements2941/2943/2945. Setting change procedures can be machine readableinstructions stored in the AMD and executed by one or more hardwareprocessors.

In some examples, the option to provide a security code corresponding toa passcode may become available, when the user 2927 performs a wakeaction on a wake interface 2923, which can include a user input elementassociated with recognizing the wake action or some other userinteraction. In these examples if the wake control module 2934 of theCCM determines that a valid wake action is performed (and enters a validsecurity code), it may present selectable elements associated with thesetting control screens 2940/2942/2944, for example, on a touchscreendisplay. In some examples, the first screen presented on the touchscreendisplay, may provide other selectable elements including an element tochange the settings of the AMD. In such examples, selecting the elementassociated with settings change may activate a second screen thatpresents selectable elements associated with the setting control screens2940/2942/2944.

When the lock feature is activated, access to one or more of the settingcontrol screens 2940/2942/2944 and/or parameter control elements2941/2943/2945 may require a passcode. In some examples, each one of thecontrol screens 2940/2942/2944 and/or parameter control elements2941/2943/2945 may require a different passcode. In some examples, oneor more control screens 2940/2942/2944 and/or parameter control elements2941/2943/2945 may not require a passcode. For example, access to thefirst screen 2940 may require a first passcode, the access to the secondscreen 2942 may require a second passcode and the access to the thirdscreen 2944 may not need a passcode. In some examples, all the controlscreens 2940/2942/2944 may be presented without the requirement apasscode, but access to the one or more control elements in a controlscreen may require a passcode. For example, the user may select thesecond screen 2942 without entering a security code, but in order toselect one or more parameter control elements 2943 on that screen, theuser may need to enter one or more security codes matching one or morepasscodes. In some cases, after the user provides a security codematching a passcode to access a parameter control element2941/2943/2945, the user may interact with the parameter control elementto provide a setting change input 2931 that changes the correspondingcontrol parameter.

FIG. 30 is a flow diagram illustrating an example method that may beused by an AMD and/or intermediary device to allow a user to change asetting of the AMD and/or intermediary device using a user generatedpasscode or an override passcode. Once the AMD and/or intermediarydevice 2923 receives a valid wake action 3002, a user interface may beactivated (e.g., a user interface on the touchscreen display 2924). Insome examples, the wake action may be received by the wake interface2922 of the AMD). In some examples, the wake action may directlyactivate a setting change interface 3004 (e.g., a setting change screenpresented on a touchscreen display with one or more parameter controlelements). In some examples, a first gesture may be required after thewake action to activate a setting change interface. In some examples, aspecific wake action may activate the setting change interface.

In some cases, in for example the setting change interface or anotheruser interface, the AMD and/or intermediary device (e.g., the settingchange procedure in the CCM) may request a security code 3006 (e.g., bypresenting a window to enter a security code such as a passcode displayof a keypad). Once a security code is received, the AMD (e.g., thesetting change procedure in the CCM) and/or intermediary device maydetermine whether the security code matches a user generated passcode3008. If it is determined the security code matches with a usergenerated passcode, the AMD and/or intermediary device may provideaccess 3010 to one or more control parameter elements associated withthe validated passcode. If the received security code does not matchwith any of the stored user generated passcodes, the AMD and/orintermediary device may determine whether the security code matches withan override passcode 3012. If it is determined the security code matchesan override passcode stored in a memory of AMD and/or intermediarydevice (or a memory of an authorized computing device), the AMD and/orintermediary device may provide access 3014 to one or more controlparameter elements associated with the validated override passcode. Ifit is determined the security code does not match an override passcode,the AMD and/or intermediary device denies access to one or more passcodeprotected parameter control elements 3016.

FIG. 31 is a flow diagram illustrating another example method that maybe used by an AMD and/or intermediary device to allow a user to change asetting of the AMD using a user generated passcode or an overridepasscode. Once the AMD (e.g., the wake action procedure in the CCM)and/or intermediary device receives a wake action 3102, the AMD and/orintermediary device may provide a user interface (e.g., a touchscreendisplay) on which the user can provide a first gesture to activate asetting change interface or screen. When a first gesture is receivedfrom a user or subject 3104, the AMD and/or intermediary device mayactivate 3106 a setting change interface (e.g., a setting change screenon a touchscreen display). In some examples, the setting changeinterface may include one or more parameter control elements associatedwith one or more AMD settings. In some examples, the setting changeinterface or a screen may include one or more selectable elements eachassociated with a setting change screen (e.g., a screen provided on atouchscreen display) that may include one or more control parameters.When a request for setting change is received 3108, for example by auser interaction with one or more parameter control elements, the AMDand/or intermediary device may determine whether the requested settingchange is passcode protected 3110. In some examples, the request forsetting change may include selecting a list of parameter controlelements (e.g., included in a separate screen provided on a touchscreendisplay).

If the AMD and/or intermediary device determines that the requestedsetting change is not protected by a passcode, it may permit access toone or more parameter control elements associated with the requestedsetting change 3112. In some examples, once the changes are received viaparameter control elements 3114, the user may need to provide a secondgesture on the user interface (e.g., touchscreen display) to confirm thechanges made. In response to receiving the second gesture 3116, the AMDand/or intermediary device may change one or more settings 3118according to the requested and confirmed changes.

If the AMD and/or intermediary device determines that the requestedsetting change is protected by a passcode, it may request security code3120 via a passcode display (e.g., provided on a touchscreen display).In some examples, the request for the security code may be presented ona display but the security code may be received via a physical keypad.Once a security code is received 3122 from the user or subject, the AMDand/or intermediary device may validate the security code against apasscode 3124 by comparing it with one or more user generated passcodesor an override passcode (e.g., does the entered security code match thepasscode). If it is determined that the security code matches with auser generated passcode or an override passcode, the AMD and/orintermediary device may activate 3126 one or more parameter controlelements associated with the requested setting change. Subsequently, theAMD and/or intermediary device may receive a setting change via theselected control parameter element 3128. In some examples, the user mayneed to provide a second gesture on the user interface (e.g.,touchscreen display) to confirm the changes made. In response toreceiving the second gesture 3130, the AMD and/or intermediary devicemay change one or more settings according to the requested and confirmedchanges 3132.

AMD with Alarm System

In some cases, a condition may occur that impacts the operation of theambulatory medicament device. This condition may be associated with theability of the ambulatory medicament device (AMD) to operate as intendedby the manufacturer, a subject receiving therapy from the ambulatorymedicament device, and/or user (e.g., healthcare provider, parent, orguardian of the subject). In some cases, the AMD may be operating asintended, but the condition of the subject may not satisfy a desiredlevel of health. In either case, it is generally desirable to generatean alarm to inform the subject and/or one or more users of the conditionof the AMD and/or the subject. Moreover, it is desirable to track thealarm until the condition that caused the alarm is resolved. Further, itis desirable to issue different types of alarms for different conditionsto enable a subject or user to easily distinguish the severity of thecondition that triggered the alarm. The user may be a subject receivingmedicament or therapy, or may be another user, such as a clinician orhealthcare provider, or a parent or guardian.

This section of the disclosure relates to an ambulatory medicamentdevice (AMD), such as an insulin pump or a combined insulin andcounter-regulatory agent (e.g., Glucagon) pump, configured to generate adose control signal configured to cause a medicament pump to infusemedicament into a subject. Moreover, the present disclosure relates toan ambulatory medicament device configured to detect a condition of theambulatory medicament device and/or the subject, and to generate analarm when it is determined that the detected condition satisfies analarm condition.

As mentioned above, an ambulatory medicament device may include an alarmsystem configured to monitor the ambulatory medicament device and/or thesubject, and to generate an alarm when it is determined that a conditionhas been detected that satisfies an alarm condition. In some examples,the alarm system that may organize a list of alarms, notifying a user ofthese alarms, and allowing the user to acknowledge alarms.

In some embodiments, the alarm system may comprise a plurality ofsensors that monitor the AMD or the subject, a monitoring systeminterface that receives the data from sensors, and alarm annunciationand control system that process the received data and generate alarms ifan alarm condition is met. In some examples, the monitoring systeminterface and the alarm annunciation and control module are implementedusing one or more hardware processors and machine readable instructions.In some examples, the monitoring system interface and the alarmgeneration module are separate hardware modules.

With reference to FIG. 32, in some embodiments, an alarm system 3222implements alarm control procedures in the control and computing module610 (CCM) of the AMD. The alarm system 3222 can be implemented asinstructions stored in a memory of the CCM (e.g., the main memory 616)and executed by a hardware processor 614 to generate an alarm upondetection of a condition of the ambulatory medicament device and/or thesubject. In some cases, the hardware processor of the monitoring systemis a hardware processor of the ambulatory medicament device thatcontrols medicament delivery. In some cases, the hardware processor ofthe monitoring system may be a separate hardware processor.

In some examples, the alarm system 3222 includes a monitoring systeminterface 3226 and an alarm annunciation and control system 3228. Thealarm annunciation and control system 3228 may include sub-systems fordetermining the severity of an alarm condition, user notificationprocessing and receiving alarm control commands from the user interfacemodule 3208. The user interface module 3208 may include one or more ofthe embodiments described with respect to the user interface module1808. The monitoring system interface 3226 may monitor the condition orstatus of the AMD and/or the subject at least partially based on signalsor status values received from a set of device sensors 3224 and a set ofsubject sensors 3220. In some examples, the device sensors 3224 may beconfigured to track the status of the components or the elements of theAMD, and the subject sensors 3220 can be configured to obtainmeasurements of one or more physiological characteristics of the subject

In some examples, a device sensor 3224 is a sensor that generates asignal or status value associated with the condition of modules,interfaces, accessories, disposables of the AMD. In some examples, adevice sensor 3224 may generate a signal that corresponds to a parameterassociated with a component in a module or interface. For example, onedevice sensor may record the voltage of a battery and another devicesensor may record the follow rate of a pump the medicament deliveryinterface 3206.

In some examples, a subject sensor 3220 may be any sensor that generatesa signal or status value associated with one or more physiologicalindicators (or parameters) of a subject (e.g., heart rate, bloodpressure, body temperature, level of blood sugar, serum levels ofvarious hormones or other analytes). In some such examples, the subjectsensor can be a continuous glucose monitoring sensor (CGS). The deviceand subject monitoring system interface 3226 may continuously receiveand analyze signals from device sensors 3224 and subject sensors 3220 todetermine the condition of the AMD, the subject, a sensor, and/or otheraccessories.

In some cases, a single sensor may be used to monitor both the conditionof the subject and the ambulatory medicament device or accessories andsensors connected to AMD. For example, a continuous glucose monitoringCGM sensor may be used to monitor the condition of the subject, and mayalso be monitored to determine whether the condition of the CGMsatisfies an alarm condition (e.g., to alarm a user that the CGM shouldbe replaced).

Although described as sensors of the AMD, one or more of the sensors maybe accessories that may or may not be part of the AMD, but that maycommunicate with the AMD.

In some examples, the alarm system 3222 implements procedures forallowing a user or the subject to change the alarm settings and/oracknowledging an alarm annunciation via the user interface 3208. In someexamples, the user may be able to see one or more alarms annunciated ona user interface (e.g., as a list of alarms), even if the AMD is inlocked state. In these examples, the user may not be able to acknowledgeor respond to alarm when the AMD is in locked state.

In some such examples, a user or the subject may get access to an alarmsetting screen or acknowledge an alarm annunciation by providing a wakeaction or a wake action followed by a first gesture on, for example, atouchscreen display. In some cases, the first gesture may be created byentering predetermined or particular characters on the alphanumeric pad.In some such examples, the alarm system 3222 distinguishes inadvertentalarm control inputs from intentional alarm control inputs. Aninadvertent alarm control input is an alarm acknowledgment input thatwas made without the intent of the user 3227 to acknowledge the alarmthat the ambulatory medical device 600 is delivering to the user. Anexample of an inadvertent alarm acknowledgment is one that wasaccidentally executed by the user 3227 by putting pressure on theambulatory medical device 600 in the jacket pocket of the user 3227.

In some examples, the alarm system 3222 implements processes fordetermination and categorization of an alarm condition based on itsseverity level (e.g., a severity level between 0 and 5), according tothe information received through the monitoring system interface 3226.In some examples, once an alarm condition is detected, the alarmannunciation and control system 3228 may place it in the appropriatequeue, for example, based on severity or category. In one or moreembodiments, a list of alarms may be generated wherein alarms may besorted numerically in descending order with the highest priority faultdisplayed at the top.

In some examples, the alarm system 3222 implements procedures forcontrolling the annunciation of alarm conditions via the user interfacemodule 3208, at least partially, based on their severity level. In somesuch examples, a user interface (e.g., a touchscreen display) may beconfigured to allow the user to navigate directly to the issue or faultfor which an alarm is being delivered and to address the fault causingthe alarm so that it could be corrected thereby stopping the alarm.

Alarm Conditions

In some examples, the device and subject monitoring system interface3226 may provide a status information received from the device 3224and/or subject sensors 3220 to the alarm annunciation and control system3228. In some examples, the status information may comprise one or morestatus values. In some examples, the status information may comprisedevice information pertaining to a condition of the ambulatorymedicament device or subject information pertaining to a condition ofthe subject. In some such examples, the alarm annunciation and controlsystem 3228 is configured to determine based at least in part on thestatus information received from the monitoring system 3226, whether analarm condition is satisfied.

Determining whether the alarm condition is satisfied may includecomparing one or more status values associated with the ambulatorymedicament device and/or the subject to one or more alarm thresholds oralarm conditions. In some cases, each alarm threshold or alarm conditionmay be associated with an alarm profile. In some such cases, determiningwhether the alarm condition is satisfied may include comparing thestatus information to one or more alarm thresholds or alarm conditionsincluded in one or more alarm profiles. In some examples, the alarmprofile may be stored in the storage 618 of the CCM 610. In some suchexamples, at least some of the alarm profiles may be provided to the CCMby an authorized user or the subject via a user interface or directlytransferred from another device to the storage (e.g., from USB drive, alaptop, smart phone, PC and the like). In some examples, at least someof the alarm profiles may be stored in the storage 618 at the time ofmanufacture,

Each of the alarm profiles may indicate the characteristics or status ofthe AMD and/or subject that triggers an alarm corresponding to the alarmprofile. For example, at least some alarm profiles may indicate thethreshold status values below or above which an alarm should betriggered. For example, one alarm profile may indicate that when a bloodglucose level of the subject exceeds a particular threshold, aparticular alarm is to be generated and/or annunciated. As anotherexample, an alarm profile may indicate that when an available amount ofmedicament is below a particular threshold, a particular alarm is to begenerated and/or annunciated. The type of alarm and/or the alarmfrequency or intensity associated with the medicament level may differfrom the alarm triggered based on the blood glucose level. Although theprevious examples described a single condition associated with a singlealarm profile, it should be understood that multiple conditions may beassociated with an alarm profile. For example, a blood glucose levelthat exceeds an upper threshold or is below a lower threshold may beassociated with different alarm profiles or the same alarm profile. Asanother example, a blood glucose level that is above an upper thresholdor a medicament pump that is unable to supply insulin may be associatedwith the same alarm profile. On the other hand, a medicament pump thatis unable to supply insulin due to an empty insulin cartridge may beassociated with a different alarm profile than if the medicament pump isunable to supply insulin due to damage to the medicament pump.

Some non-limiting examples of conditions of the AMD or of the subjectthat may be associated with an alarm profile include conditions relatingto a battery capacity (e.g., below a threshold charge capacity or belowa capacity associated with a particular amount of operating time (e.g.,one day)), a battery condition (e.g., high temperature or low voltage),a medicament or drug delivery condition (e.g., medicament is empty orbelow a threshold, motor is stalled, catheter is occluded, etc.),subject sensor condition (e.g., blood glucose sensor is expiring, orsignal was not received from sensor), calibration failure, high or lowglucose levels, network (e.g., Bluetooth® or BN-LTE) communicationerrors, haptic interface errors (e.g., motor non-responsive), speakererrors (e.g., noise or low volume), medicament cartridge errors (e.g.,empty cartridge, cartridge detection error, etc.), and the like. Asexplained below, each of these errors or conditions may be associatedwith different severity levels that cause the annunciation of differentalarms.

In some cases, each alarm profile may be associated with a severitylevel of the alarm. The severity level may be associated with howurgently the condition that triggered the alarm should be addressed orresolved. Further, the severity level may be associated with an amountof harm that may be caused to a subject if the condition that triggeredthe alarm is not resolved or is not resolved within a particular timeperiod. The number of severity levels may vary based on the type ofambulatory medicament device. Generally, there is no limit to the numberof severity levels. However, there may be a point of diminishing returnsas the number of severity levels exceeds a particular number because,for example, it may be difficult for a user to distinguish between thedifferent numbers of severity levels or to identify with which severitylevel a particular alarm is associated. Thus, the number of severitylevels may be limited to a particular number, such as 3, 5, 6, 9, orsome number in between. However, it is possible for there to be morethan 9 severity levels.

There may be multiple alarm profiles associated with a severity level.Or each condition of the AMD and/or subject that is associated with thesame severity level may be associated with the same alarm profile.

The AMD may determine a severity of an alarm condition based on thecondition of the ambulatory medicament device and/or the subject thattriggered the alarm condition. In some cases, the ambulatory medicamentdevice may determine the severity of the alarm condition based at leastin part on an alarm profile associated with the alarm condition.

Generally, if the alarm condition does not prevent the AMD fromproviding therapy, the AMD may continue to provide therapy. However, insome examples, if the alarm condition interferes with the delivery oftherapy, operation of the AMD may be suspended or partially suspended.Generally, alarm conditions that interfere with the provisioning oftherapy may be associated with a higher severity level. However, somealarm conditions that interfere with the provisioning of therapy may beassociated with lower severity levels. For example, a determination thatthe AMD cannot supply insulin may normally be associated with a highestseverity alarm. But if a user indicates that the site location iscurrently in process of being changed, the alarm condition may beassociated with a lower severity level (e.g., an informational alarmreminding the user that insulin cannot be delivered during site change).In some examples, in response to determining that the severity level ofthe alarm condition matches an unsafe operation (e.g., a condition thatmay cause the AMD to provide doses of the medicament that are above orbelow certain values, or to unreliably determine the subject'scondition), the AMD may suspend delivery of the medicament to thesubject. Once the condition is resolved, the AMD may resume delivery ofmedicament to the subject. If on the other hand it is determined thatthe alarm condition matches a safe operation severity level, the AMD maybe configured to maintain delivery of medicament to the subject.

Alarm Annunciation

When an alarm condition is satisfied, the alarm annunciation and controlsystem 3228 can implement an annunciation pattern selected based atleast in part on the status information generated by and/or receivedfrom the monitoring system 3226. The annunciation pattern may beselected from a plurality of annunciation patterns based at least inpart on the alarm condition and/or the status information. Theannunciation pattern may include one or more different text patterns ortext information, audible alarms, visual alarms, or haptic alarms.Determining whether the alarm condition is satisfied may includecomparing one or more status values associated with the ambulatorymedicament device and/or the subject to one or more alarm thresholds oralarm conditions associated with an alarm profile.

Upon verifying that an alarm condition associated with an alarm profileor alarm condition is satisfied, the alarm annunciation and controlsystem 3228 annunciates the alarm condition. In some cases, at leastsome of the alarm conditions may be associated with a uniqueannunciation pattern. Advantageously, by having unique annunciationpatterns for at least certain alarm conditions, a user can instantlyknow the stated of the AMD and/or subject based on the annunciationpattern for the alarm.

In some cases, the AMD may have a wireless electronic communicationsinterface that can be used to transmit an alarm signal, statusinformation, alarm condition data, and/or an annunciation pattern to aremote electronic device. In some such cases, the remote electronicdevice may annunciate an alarm if an alarm condition is met. The remoteelectronic device may include any device that can receive alarminformation or status information from the AMD. For example, the remoteelectronic device may be a smartphone, smartwatch, smart glasses, alaptop, a tablet, or any other computing device.

In some examples, the alarm system may generate a list of pending alarmconditions and store it in a memory of the AMD (e.g., storage 618 in CCM610). In these examples, any time an alarm condition associated with analarm profile is satisfied, the alarm system may update the list ofpending alarm condition by adding the new alarm condition to the list ofpending alarm conditions. In some examples, the list of pending alarmconditions may comprise a list of elements (e.g., icons, text, and thelike) each indicating an alarm condition (e.g., an alarm condition thathas been annunciated). In some examples, the AMD may display an alarmstate icon comprising a visual indication of a count of alarm conditionson the list of pending alarm conditions.

In some examples, the list of pending alarm conditions may be sortedaccording to the severity level associated with the alarm conditions.

In some examples, the alarm system may annunciate the alarm conditionsvia the user interface module 3208 of the AMD 600. For example, thealarm condition may be annunciated via one or more user interfaces(e.g., a display, a touchscreen display, a speaker, and the like). Insome such examples, an alarm may comprise an audio alarm, a textmessage, a graphical message, a text or graphical message with audio,vibrations, flashing light and any combination of these.

In some examples, the alarm conditions may be transmitted to otherdevices, via the communication module 3202 of the AMD where, forexample, an authorized user (e.g., guardians or parents of the subject),the subject or an emergency provider can view the alarm condition. Insome examples, the alarm annunciation and control system 3228, mayestablish a direct end-to-end connection with a computing system (e.g.,a cloud computing system) using the communication module 3202 and sendthe alarm condition to the computing system through the end-to-endconnection.

Based on the severity of the alarm condition and/or the alarm profilecorresponding to the alarm condition, an alarm may be generated and/orannunciated that is associated with the severity of the alarm conditionand/or the type of alarm condition. Different alarm conditions and/oralarm profiles may result in different types of alarms or differentannunciations of the alarm. For example, an alarm associated with thehighest severity level may include an audible alarm with a loudness thatexceeds a particular decibel level (e.g., above 70 or 80 decibels), avisible alarm (e.g., a flashing or steady light) with a luminance abovea particular luminance value (e.g., a luminance between 10⁵ or 10⁶candelas per square meter), and/or a vibrational alarm. Further, thealarm associated with the highest severity level may not be snoozed ordismissed. Alternatively, the alarm associated with the highest severitylevel may be snoozed for a shorter time period than alarms of lowerseverity levels (e.g., for 5 minutes, for 10 minutes, etc.). An alarmassociated with a different severity level than the highest severitylevel may include a different combination of audible, visible, andvibrational alarms. Not only may the existence of audible, visible, andvibrational alarms differ for different severity levels, but so may thecharacteristics of each of the alarm types. For example, audible alarmsmay have different sound patterns, loudness, frequencies, etc. Visiblealarm may be of different intensity, color, pattern, etc. Vibrationalalarms may be of different pattern, intensity, etc. Further, an alarmwith a different severity level than the highest severity level may bepermitted to be snoozed or dismisses or snoozed for a longer period oftime. In some examples, the severity of the alarm condition maydetermine the type of type of the alarm generated (e.g., audio, text,graphical, or any combination of these).

Further, the display of alarm conditions on the user interface mayinclude an icon for each type of alarm condition. The user interface maydisplay the number of alarm conditions and/or the number of alarmconditions of a particular type or severity level. In some cases, aduplicate alarm may be omitted from the list of alarms. In some cases, acount of the occurrence of alarms may be increased to reflect theduplicate alarm. In some cases, a duplicate alarm may result in theannunciation of the duplicate alarm. In some cases, the duplicate alarmis ignored. In some cases, the occurrence of a duplicate alarm may causean escalation of the existing alarm. For example, if an alarm conditionthat causes an annunciation of an alarm with a first severity level isdetected as occurring a second time, the alarm may be annunciated with asecond severity level that indicates a greater degree of severity thanthe first severity level. It should be understood that an alarmoccurring after an alarm condition is resolved may not be considered aduplicate alarm, but instead may be a reoccurrence of the alarmcondition and/or an indicator that the resolution for the alarmcondition failed (e.g., an insulin cartridge replacement is faulty or isempty)

In some cases, the list of alarms may be observed via a user interface(e.g., a touchscreen display) when the user interface is locked. In somesuch cases, further, details about the alarms may be accessible when theuser interface is locked. In some cases, in order to access more detailsabout the alarms and/or resolve the alarms, it may be necessary tounlock the user interface unlocked (e.g., by a wake action and/or agesture).

Each of the alarm conditions, or information associated therewith, maybe added to an indicator or user interface (e.g., a list, or other datastructure or user interface element) that may be accessed by a user.This user interface may maintain the alarm condition on the userinterface until the alarm condition is resolved. Further, the alarmconditions may be sorted or ranked based on the severity level of thealarm condition, the time that the alarm condition occurred, whether thealarm condition relates to the subject or the ambulatory medicamentdevice, any combination of the foregoing, or any other factor forsorting or ranking the alarm conditions.

In some cases wherein the alarm is presented on a display, the displayedinformation may include details about what caused the alarm, theseverity of the alarm, how to respond to or address the alarm, or anyother information that may be informative regarding why the alarm wasgenerated and/or how to respond to the alarm. In some cases, theinformation may provide a workflow or instructions on how to respond tothe alarm. The instructions may include a link to a workflow provided bya manufacturer of the ambulatory medicament device or of another entity,such as an entity that provides medicament or site changing kits.

In some cases, different views of an alarm or different informationassociated with the alarm may be provided based on an identity of theuser, or a role of the user, viewing the alarm. For example, a child maybe instructed to contact a parent to address an alarm. But a parent maybe provided with information to resolve the alarm. The parent mayreceive simplified information (e.g., blood glucose level is high) aboutwhat caused the alarm, but a healthcare provider may receive moredetailed information regarding the alarm (e.g., internal controlparameter values, insulin flow rates, curvature of insulin diminishmentpredictions, etc.) that facilitates the healthcare provider caring forthe subject.

The alarm conditions may be displayed on a display of the AMD.Alternatively, or in addition, the alarm conditions may be displayed ona remote display that is separate from the ambulatory medicament device.The remote display may be a display that is authenticated or associatedwith a computing device that is authenticated to access data, such asalarm conditions, from the AMD. In some cases, the list of alarms may bepresented on a mobile device (e.g., a smartwatch or smartphone) or on acomputing device (e.g., a laptop or desktop) that can obtain datadirectly or indirectly from the AMD.

In some cases, annunciating the alarm may include contacting amanufacturer and/or user (e.g., a healthcare worker, a parent orguardian, or other registered user). Further, the alarm may includeinstructions on repairing the ambulatory medicament device and/or onaddressing the alarm condition. For example, the alarm may provide auser with instructions to replace the insulin cartridge and how toreplace the insulin cartridge. As another example, the alarm may provideinstructions on how to change the battery of the device or on how tochange a site where the insulin pump connects to the subject. In somecases, the alarm may include one or more operations associated with thealarm. For example, the alarm may trigger reordering of insulin or mayrequest that the user confirm a reorder request to reorder insulin.

Resolving an Alarm

Certain alarms, such as informational alarms, may be dismissible.However, generally the alarm may remain on the alarm list until thecondition that caused the alarm is resolved.

A user may be able to acknowledge and/or snooze alarms via a userinterface. In some examples, in order to acknowledge and/or snoozealarms, the user may first need to activate the user interface (e.g., byproviding a wake action) and then provide a gesture to unlock the userinterface. For example, the user may use the wake button to activate atouchscreen display and then provide a gesture on the screen to unlockdisplay. In some example, the touchscreen display may be configured toallow the user or subject to navigate directly to the issue or fault forwhich an alarm is being delivered. This capability provides the userwith access to address the fault causing the alarm so that it could becorrected thereby stopping the alarm.

Resolving the alarm may include any action that addresses the conditionthat caused the alarm to be generated. For example, resolving the alarmmay include replacing an insulin cartridge, changing a site where theambulatory medicament device is connected to the subject, charging abattery of the ambulatory medicament device, providing insulin or acounter-regulatory agent to the subject and/or the ambulatory medicamentdevice, or any other action that may be performed to address an alarmcondition. In some cases, the resolution action may be acknowledging thealarm. For example, if the alarm is informational (e.g., to inform theuser that more insulin has been ordered), acknowledging the alarm may bea sufficient resolution action.

In some cases, whether the alarm condition is resolved may depend on anidentity of the user. For example, if a child interacts with an alarmrelated to reordering of insulin, the alarm may remain until a parent orguardian acknowledges the alarm. However, the child may be able tosnooze the alarm. In some cases, a user interface that displays alarmsmay differ based on who is viewing the alarm. For example, a child mayview the alarms, but may not be able to interact with the alarms.However, a parent or guardian may be able to snooze or dismiss an alarm.Further, a child may be instructed to bring the device to a parent oradult to address an alarm. In some cases, the child may be informed ofhow urgently to contact the parent (e.g., contact a parent immediately,within a day, within a week, etc.). Moreover, a designated adult mayseparately be alarmed (e.g., via a text or email alarm). The parent orguardian may receive additional information not provided to the child orsubject (e.g., a link to repair instructions or a workflow to addressthe alarm condition).

In some cases, certain conditions may self-resolve over time. Forexample, a low battery alarm may resolve as the battery is charged. Insuch cases, the alarm may be cancelled automatically as the batterycharge level exceeds a particular threshold. Further, in some cases, oneor more alarms and/or the alarm list can be viewed and/or accessed on ahome screen, a main screen, or other non-alarm based user interfacescreen in addition to a user-interface screen designated for displayalarms. The alarm list may be accessed from the ambulatory medicamentdevice and/or a computing system in communication with the ambulatorymedicament device.

However, in some cases, the alarm condition may or may not be resolvablewhen the ambulatory medicament device is locked.

A user may interact with the alarms generated based on the alarmcondition. In some cases, the user can only interact with the alarmswhen the AMD and/or the user interface is unlocked. In some cases, theuser can interact with the alarms to snooze them or to obtain furtherinformation, when the AMD is locked. However, the user may not be ableto dismiss the alarm without unlocking the ambulatory medicament device.Interacting with the alarms may include providing information associatedwith the alarm to a user in response to the user interacting with thealarm, or an indicator representative of the alarm.

Example AMD with Alarm Management System

FIG. 33A shows a flow diagram illustrating an example procedure that maybe used by the alarm system of an AMD to annunciate an alarm conditionupon receiving a status information that satisfies an alarm condition.In some examples, the alarm annunciation and control system 3228implements an annunciation process by execution of instructions by aprocessor in CCM of the AMD, where the instructions can be stored in themain memory, storage of the AMD, or in a memory of a connectedelectronic device or computing system.

The alarm system may receive status information at block 3302 from oneor more device sensors 3224 and/or one or more subject sensors 3220 viathe monitoring system interface 3226. The one or more device sensors3224 may include any type of sensor that can determine a condition ofthe AMD. For example, the one or more device sensors 3224 may include abattery charge sensor that determines a charge of a battery, a batterycondition sensor that determines a condition of a battery, a medicamentsensor that determines a quantity of medicament remaining, or any othertype of sensor that can determine a condition of one or more electronicor mechanical components of the AMD. The one or more device sensors maydetermine if a quantity of medicament is below a threshold or if abattery charge is below a threshold.

The one or more subject sensors 3220 can include any type of sensor thatcan determine a health-related characteristic or physiological parameterof the subject. For example, the one or more subject sensors 3220 candetermine a blood glucose measurement, a blood pressure measurement, arespiratory rate, a blood oxygenation level, a pulse rate, or any otherphysiological characteristics of a subject. In particular, although notlimited as such, the one or more subject sensors 3220 may measure anyphysiological parameter of the subject that may relate to monitoring,managing, or treating a subject's diabetes.

In some examples, the alarm annunciation and control system 3228determines whether the received status information satisfies an alarmcondition at decision block 3304. In some examples, the alarm conditionmay be an alarm condition in an alarm profile. If the received statusinformation does not satisfy an alarm condition, no action may be takenat block 3306. If the received status information satisfies an alarmcondition 3304, the alarm system may determine whether the alarmcondition is already present in the list of pending alarm conditions atdecision block 3308. If the alarm condition is not present in the listof pending alarm conditions, the alarm system may determine the severitylevel of the alarm condition at block 3310, add the alarm condition tothe list of pending alarm conditions at block 3312, and increment analarm count that tracks a number of occurrences of an alarm or a faultcount that tracks a number of faults occurring in the AMD. In someexamples, the placement of the alarm condition in the list of pendingalarm conditions may depend on the determined severity level of thealarm condition. In some such examples, the alarm conditions may becategorized numerically in descending order with the highest priorityfault displayed at the top.

Next, based on the determined level of severity, the alarm annunciationand control system 3228 may select an annunciation pattern at block 3314and annunciate the alarm condition using the selected annunciationpattern at block 3316. If the alarm condition is present in the list ofpending alarm conditions, the alarm system may select an annunciationpattern at block 3318 and annunciate the alarm condition using theselected annunciation pattern at the block 3316. In some examples, theannunciation pattern selected at block 3318, may be an annunciationpattern that is different than the previously used annunciation patternsfor the alarm condition. In some such examples, the annunciation patternselected at block 3318, may be selected based at least in part on anumber of times that the same alarm condition is satisfied by a receivedstatus information. The process of the alarm detection and controlfunction may repeat periodically, intermittently, according to aparticular schedule, or while the ambulatory medical device is in use.The frequency with which the process is repeated may depend on theparticular alarm condition detected from the status information. In someexamples, after an alarm is annunciated, the alarm system may wait foruser acknowledgment of the alarm at block 3320. If the user acknowledgesthe alarm, the system proceeds to resolve the alarm 3322. In some cases,resolving the alarm may include providing instructions to a user orindicating where a user can locate instructions to resolve the alarmcondition. For example, the user may be provided with repairinstructions for repairing the AMD. Further, in some cases, resolvingthe alarm may include automatically ordering or requesting that the userconfirm an order is to be placed to replenish a medicament. If the userfails to acknowledge the alarm, the annunciation may be repeated after acertain time period at block 3324 determined based on the severity levelof the alarm. In some examples, if the user fails to acknowledge thealarm, the annunciation continues and may escalate depending on theseverity level of the alarm.

As described above, in some examples, a user or the subject may view analarm using a user interface provided on a touchscreen display both whenthe display is locked and when the display is unlocked. FIG. 33B is anillustration of such user interface 3326 for accessing the alarmnotifications screen when the display is locked. As illustrated, theuser interface 3326 includes an alarm icon 3328; a pump operation field3330; and an unlock button (or a first gesture field) 3332. The alarmicon 3328, in this exemplary embodiment, is shaped as an alarm bell witha counter in the middle indicating the number of annunciated alarms(e.g., “0” in the examples shown).

In some examples, the unlock field is configured such that the user mayunlock the display by sliding in the direction of the chevrons, forexample. However, the user may still view the alarms without unlockingthe interface. Thus, for example, if the user selects the alarm icon,the display illustrated in 3334 will appear if there is no alarm in thesystem. If there are existing alarms in the system, the display of 3336appears wherein a list of alarms is displayed however the user cannotselect the alarms (e.g., to see more information or acknowledge thealarms). The inability to select the alarms is exemplified by theabsence of chevrons by each alarm. The number of alarms displayed may belimited by the size of the screen.

In some such examples, if the user unlocks the screen by sliding theunlock button 3332, the user interface 3327 illustrated in FIG. 33C maybe displayed. As illustrated, the user interface 3327 includes the alarmicon 3328; a menu icon 3329; and the pump operation field 3330. In somecases, the menu icon 3329 may allow the user to control operation of theAMD 600 and the alarm icon 3328 may provide the user with access to thealarm control functions. Thus, for example, if the user selects thealarm icon 3328, the display illustrated in 3335 may appear on thescreen if there is no alarm in the system. If there are existing alarmsin the system, the display of 3337 may appear wherein a list of alarmsis displayed with each alarm having a chevron 3339 that enablesselecting the alarm to access further control functions for the selectedalarm.

As mentioned above, the alarm conditions may be categorized based andannunciated based on their severity level. In some examples, the alarmsare categorized numerically in descending order with the highestpriority fault displayed at the top of the list. In some examples, alevel 0 severity, may be for a trivial fault that does not require anyaction by the user thus not warranting an alarm notification. In someexamples, a level 1 severity may be an informational type notificationthat repeats at a certain frequency (e.g. every 30 minutes) untilacknowledged by the user which results in it being reset. Theannunciation may include a brief vibration and a beep, for example. Insome examples, a level 2 severity, may be one relating to an imminentloss of system function. Thus, such an annunciation may include twobrief vibrations and two beeps, for example, and repeating at a certainfrequency (e.g. every 30 minutes). Thus, the user would still need toaddress the situation creating the fault to completely stop theannunciation. In some examples, a level 3 fault may be for when thesystem is no longer fully functional thus requiring user intervention tocorrect the issue. The annunciation may begin with a base levelintensity with three brief vibrations and three audio beeps, forexample, and repeating at a certain frequency (e.g. every 5 minutes).The annunciation escalates at a second frequency, e.g. every 30 minutes,up to a maximum intensity level. The escalation may be a change invibration intensity and/or audio level, for example. The escalation maybe cleared to a base level when the user acknowledges the fault;however, the base alarm may remain if the underlying condition persists.Thus, the user would still need to address the situation creating thefault to completely stop the annunciation. In some examples, a level 4severity, may be for when the system is no longer functional and notcorrectable by the user. The annunciation may begin with a base levelintensity with three audio beeps, for example, and repeating at acertain frequency (e.g. every 5 minutes). The annunciation escalates ata second frequency, e.g. every 30 minutes, up to a maximum intensitylevel. The escalation may be a change in audio level, for example. Theescalation may be cleared when the user acknowledges the fault; however,the base alarm remains because the underlying condition persists. Insome examples, a level 5 severity, may be for high priority alarms perIEC 60601-1-8. The annunciation when activated may be cleared only whenthe underlying issue is resolved, e.g. glucose level is raised.

Additional embodiments relating to determining a severity of an alarmcondition and annunciating the alarm based at least in part on theseverity of the alarm condition that can be combined with one or moreembodiments of the present disclosure are described in U.S. ProvisionalApplication No. 62/911,017, which was filed on Oct. 4, 2019 and istitled “ALARM SYSTEM AND METHOD IN A DRUG INFUSION DEVICE,” thedisclosure of which is hereby incorporated by reference in its entiretyherein for all purposes.

Non-Critical AMD Condition Management

In some cases, a condition may occur that impacts the operation of theambulatory medical device (AMD) that provides therapy to a subject. Insome examples, an AMD can be an ambulatory medicament device. Thiscondition may be associated with the ability of the AMD to operate asintended by the manufacturer, a subject receiving therapy from the AMD,and/or user (e.g., healthcare provider, parent, or guardian of thesubject). In some cases, the condition or malfunction of the AMD mayprevent the AMD from providing therapy to the subject. In some cases,the condition or malfunction may permit, at least for a period of time,the AMD to continue providing at least partial therapy to the subject.It is generally desirable to generate an alert to inform the subjectand/or one or more users of the condition of the AMD and/or the subjectto provide and facilitate non-critical malfunction management in anambulatory medical device. Moreover, it is desirable to track the alertuntil the condition that caused the alert is resolved. Further, it isdesirable to issue different types of alerts for different conditions toenable a subject or user to easily distinguish the severity of thecondition that triggered the alert.

In many cases, if the nature of the alert is non-critical, it may besafer to continue the underlying therapy and notify the user of thecondition than to cease therapy. In some such cases, the best responseto a problem with the device for a subject is to notify the devicemanufacturer, or other user that can address the problem, while thesubject continues to receive therapy until a replacement device can beobtained or a repair can be made.

Additionally, alert fatigue can be an issue with medical devices due toexcessive alerts which do not necessarily require user interaction.Alert fatigue can be dangerous because it can lead users to ignoreserious alerts or alerts that require action in the short term.

The method described herein may be performed by an AMD (e.g., by one ormore processor of the AMD) to detect device malfunctions for the AMD andthat can generate alerts corresponding to the AMD and prioritize thealerts to enable the subject or user to quickly and easily determinewhether the device malfunction will impact therapy, should be addressedin the short-term (e.g., immediately, in 1-2 hours, within the day,etc.), and/or can be addressed at the subject's convenience (e.g.,within a month, or more). In some cases, the method of devicemalfunction alert prioritization may be used by other systems.

In certain embodiments, the system disclosed herein can detect acondition in which the AMD does not meet a manufacturer's specification(e.g. a failure of a haptic annunciator, a Bluetooth® radio malfunction,glucagon or insulin runs out, there is a medicament deliverymalfunction, a touchscreen failure, etc.). In some cases, there can beseveral tiers of critical and/or non-critical faults. If it isdetermined that the underlying condition is not sufficient to stoptherapy (e.g., stop delivery of insulin), the fault may be deemednon-critical. In some cases, the fault may not be a fault of the device,but may be indicative of required maintenance (e.g., recharge batteryindicator, order more medicament indicator, etc.). The condition may beannunciated to the user with appropriate instructions (e.g., callmanufacturer for replacement medicament or parts) for addressing thefault or issue.

After the annunciation is acknowledged, the alert may be re-annunciated,or annunciated again, as a reminder at some later period in time (e.g.the alert may be re-annunciated daily at 4:00 PM or on Saturdays at noonproviding, for example, for a fixed static time period or periodicallybetween alerts). The length of time between annunciations may depend onthe severity of the fault. In some cases, the re-annunciation cannot bestopped by the user, but may only cease if the underlying condition isresolved. In some cases, the re-annunciation time period may be avariable time period and may gradually increase to minimize fatiguealert. In some cases, the re-annunciation time period may be a variabletime period and may gradually decrease if the alert becomes more urgentor increase in urgency. In some cases, the re-annunciation time periodmay change during the day based on time of day. For example, alerts maybe provided during the day, but silenced or reduced during the night.

The method may include detecting a condition of the AMD. In someexamples, the condition of the AMD may comprise a set of operatingparameters of the AMD. In some such examples, the condition of the AMDmay be determined using one or more sensors of the AMD. Further, thecondition of the AMD may be determined by the presence or absence of oneor more errors when performing one or more functions of the AMD. Forexample, if the AMD fails to establish a communication connection with acontrol system or a data storage system, it may be determined that thereis a possible malfunction with the AMD. As another example, if the AMDfails to deliver medicament or detects an error when attempting todeliver medicament, there may be a malfunction with the medicament pump.In some cases, the condition of the AMD may be determined based on oneor more configuration values being outside a normal operating range. Forexample, if the speed of delivery of medicament is faster or slower thana configured operating range, then it may be determined that there is amalfunction with the medicament pump or a connection with a medicamentdelivery tube (e.g., a catheter). In some examples, the condition of theAMD may be determined based on the performance of the AMD over period.

The method may include comparing the detected condition of the AMD to aset of normal operating parameters. In some examples, the set of normaloperating parameters may be the specifications set by the manufacturerfor when the AMD is operating as intended by the manufacturer. In someexamples, at least some of the normal operating parameters may beprovided by a healthcare provider. In some examples, at least some ofthe normal operating parameters may be provided by the subject or anauthorized user. In some cases, the normal operating parameters may beassociated with a range of values. For example, the operating parameterfor a speed of medicament delivery may be associated with a range ofspeeds, which may vary based on user settings, medicament type, sitelocation of medicament delivery, or manufacturing tolerances, amongother parameters. Comparing the detected condition of the AMD to the setof normal operating parameters may include comparing each operatingparameter in the specification to a corresponding detected operatingparameter of the AMD. The AMD may generate a user alert or non-criticalmalfunction alert based on the determined condition of the AMD. Forexample, the AMD may generate an alert when the detected condition ofthe AMD does not satisfy a set of normal operating parameters.

The method may further include determining whether the detectedcondition satisfies a minimum set of operating parameters. In somecases, the minimum set of operating parameters may match the normaloperating parameters. However, typically the minimum set of operatingparameters differ from the normal operating parameters. The minimumoperating parameters may include the minimum specifications, minimumparameters, or minimum condition required by the AMD to maintain orcontinue providing therapy to the subject. In other words, the minimumoperating parameters are the operating parameters sufficient to providetherapy. However, the minimum operating parameters may not be sufficientto enable all features of the AMD. For example, the minimum operatingparameters may permit the AMD to deliver insulin to the subject, but maynot be sufficient to deliver the insulin at a normal delivery speed forthe particular AMD. As another example, the minimum operating parametersmay permit the delivery of therapy, but may not be sufficient to track alog of therapy or to transmit a therapy log to another computing system.In some cases, the normal operating parameters and/or minimum operatingparameters may be specified by be specified by the manufacturer at thetime of manufacturing. In some cases the normal operating parametersand/or minimum operating parameters may be specified by a subject orhealthcare provider (e.g., the minimum amount of medicament that is tobe provided in each bolus may be specified by a healthcare provider). Insome cases, the normal or minimum operating parameters may be modified.

When it is determined that the condition of the AMD satisfies at leastthe minimum operating parameters, the AMD may be configured to maintaindelivery of therapy to the subject. Maintaining delivery of therapy mayinclude maintaining therapy at the same rate, at a reduced rate (e.g.,providing only basal therapy and therapy responsive to a mealannouncement), or at a minimum rate or minimum maintenance rate (e.g.,providing only basal insulin). Advantageously, the ability of the AMD todistinguish between a minimum set of operating parameters and a normalset of operating parameters enables an AMD with a malfunction tocontinue providing therapy, which sometimes includes life-savingtreatment, to a subject until the AMD can be repaired or until thecondition of the device worsens to a point where the minimum operatingparameters cannot be maintained. In some cases, the AMD may temporarilymaintain delivery of therapy. Temporarily maintaining therapy mayprovide a subject time to address the issue that caused the AMD to notsatisfy the normal operating parameters before the subject loses accessto therapy. In some cases, the AMD temporarily maintains therapy untilthe device condition makes it no longer possible to maintain therapy.

FIG. 34 is a block diagram illustrating an example of theinterconnection among modules and procedures in AMD that may be involvedin monitoring the condition of the AMD and generating an alert when adevice malfunction is detected. In some examples, the condition of AMDmay include the status of the modules and components of the AMD and/oroperation of modules and procedures of the AMD. In some embodiments, thealert system may be implemented as a set of alert control procedures3422 in the control and computing module 610 (CCM) of the AMD. The alertcontrol procedures 3422, may be implemented as instructions stored in amemory of AMD (e.g., a memory in CCM 610) and executed by a hardwareprocessor 614 of the AMD (e.g., a processor in CCM 610) to generate analert upon detection of a malfunction of the AMD. In some cases, thehardware processor may be a hardware processor of the AMD that controlsmedicament delivery. In some cases, the hardware processor of themonitoring system may be a separate hardware processor.

In some examples, the alert control procedures 3422 may include amonitoring system 3426, a set of operation monitoring procedures 3425and a set of alert generation procedures 3428. In some examples, a setof device sensors 3424 may be configured to track the status of thecomponents of the AMD. A set of operation monitoring procedures 3425 maybe configured to monitor the operation of the components, modules andother procedures (e.g., temporal behavior of the signals provided by thecomponents, communication between different devices and modules,performance of the procedures implemented in the CCM 610 and the like).For example, a device sensor may determine that a component is properlyconnected and it is functional, while the operation monitoringprocedures 3425 may provide data related to signals generated by thecomponent over a period. The monitoring system 3426 may monitor andevaluate a set of operating parameters of the AMD at least partiallybased on the information received from the operation monitoringprocedures 3425 and device sensors 3424.

In some embodiments, the alert generation procedures 3428 may comparethe determined operating parameters of the AMD, received from themonitoring system 3426, with a set of normal operating parameters. Insome examples, the alert generation procedures 3428 may also determinewhether the operating parameters of the AMD satisfies a minimum set ofoperating parameters. In some examples, if it is determined that one ormore operating parameters of the AMD do not satisfy the normal operatingparameters, the alert generation procedures 3428 may generate an alert.In some examples, the alert may be transmitted to the user interfacemodule 3408 and displayed on a display of the AMD (e.g., a touchscreendisplay). In some examples, once an alert is generated the AMD mayestablish a connection (e.g., a wireless connection) with another deviceusing the communication module 3402. This other device may include alocal device (e.g., a laptop, smartphone or smartwatch of the user) or acomputing system of a cloud-based service. In some such examples, thealert may be transmitted by the communication module 3402 to the localdevice and/or the computing systems where it may be displayed on userinterface associated with the local device or the computing system. Insome cases, the local devices and/or the computing system may receivedata from the AMD device enabling the user to monitor the operatingparameters of the AMD.

The type of the alert, and the frequency at which the alert is repeated,or whether an alert is dismissible or not, may be determined by thealert generation procedure based on the detected condition of the AMDand the alert information stored in a memory of the AMD. In someexamples, the alert information may be provided by the subject, anauthorized user or a healthcare provider. In some examples, the alertinformation may be stored in the AMD at time of manufacturing.

In some examples, upon determination that the detected AMD condition(e.g., comprising a set of operating parameters) does not satisfy anormal condition (e.g., a set of normal operating parameters), the alertgeneration procedures 3428 may cause the medicament delivery interface606 to stop therapy delivery or modify one or more delivery parameters(e.g., therapy delivery rate). In some examples, upon determination thatthe detected or determined that the operational parameters of AMD do notsatisfy a set of normal operating parameters, but satisfy a set ofminimum operating parameters, the therapy delivery may be maintained ata normal rate.

The alert may include any type of alert. For example, the alert may be avisual alert (e.g., a light or changing light), an audible alert (e.g.,a beep or series of beeps), a haptic or vibration alert, an email alert,a text alert, or any other type of alert. In some examples, differentAMD conditions or different operational parameters of the AMD may beassociated with or may trigger different types of alerts. Thus, thealert may enable the user to determine the device condition of the AMDbased on the type of alert. For example, an indication that the AMDfailed to deliver a medicament may trigger one type of alert while anindication that the level of a medicament in the AMD has dropped below aparticular level may trigger a different type of alert. In some cases,the user alert or non-critical malfunction alert is dismissible and/ormay be snoozed by the user. In some cases, such as when the AMD fails tosatisfy a set of minimum operating parameters, the user alert ornon-critical malfunction alert may not be dismissible or cannot besnoozed.

A dismissible alert may be scheduled to repeat on a particular scheduleuntil an alert modification condition occurs. The frequency with whichthe dismissible alert repeats may depend on the severity of thecondition or the particular operating parameters that do not satisfynormal or minimum operating parameters. More urgent device conditionsmay result in alerts that repeat more frequently. Further, alerts mayvary based on when the condition was detected, the time of day, or thedetected activity of a subject (e.g., sleep, abnormal activity, orelevated activity, such as exercise). Similarly, the snooze options mayvary for different alerts or any of the aforementioned conditions. Insome cases, the AMD may escalate or prioritize an alert if it detectsthat the condition of the AMD has become more critical. In some cases,the re-annunciation time period or variable time period may graduallyincrease to minimize fatigue alert, or the condition of the AMD hasbecome less critical. In some cases, the re-annunciation time period orvariable time period may gradually decrease if the condition of the AMDhas become more critical.

The alert frequency may be for a static time period (e.g., every 5hours) or may ramp towards more frequency (e.g., every 5 hours for 1 to3 reminders, every 4 hours for 3 to 6 reminders, etc.), or may changebased on time of day (e.g., snooze alerts during sleeping hours fornon-urgent alerts), etc.

In some examples, the alert modification condition may include anyaction that causes the operating parameters of the AMD to return tonormal operating parameters. For example, the alert modificationcondition may be a repair or replacement of a faulty component. In somecases, the alert modification condition may be an acknowledgement of thealert. In some examples, the alert modification condition may include aworsening of the AMD condition. In such cases, the modification to thealert may include the substitution or prioritization of the alert to adifferent alert that indicates a different or more serious condition ofthe AMD. For example, an urgent condition may become critical if thedetected malfunction is not addressed after generating certain number ofalerts. When an urgent condition becomes critical, it may beprioritized, trigger a different alert types or differentuser/non-critical malfunction alert types (e.g., a louder sound,different sound, different frequency, brighter image or the like),and/or escalation in the alert frequency. For example, the audible alertmay become louder and may be combined with a vibration alert from ahaptic annunciator. Moreover, if the condition reaches a critical state,the AMD may cease providing therapy to the subject.

In some cases, generating the alert may further include contacting amanufacturer and/or healthcare provider (e.g., clinician). Further,generating the alert may include ordering replacement parts. In somecases, the alert may instruct a subject or user on how to repair theambulatory medical device.

Once the malfunction is addressed, the AMD is repaired, or the conditionthat caused the alert is resolved, a user may permanently (or until thenext time a device condition triggers the alert) dismiss the alert.Alternatively, or in addition, the AMD may automatically dismiss thealert when it determines that the device condition that caused the alerthas been resolved (e.g., using the alert control procedures 3422). Insome cases, the AMD may periodically recheck the device condition todetermine whether the alert condition has been resolved.

In some cases, the manufacturer or healthcare provider may remotelyclear or stop an alert using, for example, using a device or computingsystems that is connected to the AMD (e.g., via a wireless connectionsuch as an NB-LTE connection). In some cases, only the manufacturerand/or healthcare provider can clear or stop the alert. Further, in somecases, a manufacturer and/or a healthcare provider may notify a user(e.g., a subject, or parent or guardian) of an issue or impending issuewith the AMD. The notification may be received by the AMD device via awireless connection (e.g., NB-LTE connection). Alternatively, or inaddition, the notification may be received via a computing device, suchas a smartphone or laptop.

FIG. 35 is a flow diagram illustrating an example procedure that may beused by the alert system of an AMD to monitor the operation of an AMDand generate alerts when a device malfunction is detected. In someexamples, the alert system continuously monitors the status of allmodules and components associated with AMD as well as the operation ofall modules and procedures of the AMD. When a condition of the AMD isdetected 3502, the alert system may determine whether the detecteddevice condition satisfies a set of normal operating parameters 3504. Ifit is determined that the detected device condition satisfies a set ofnormal operating parameters, the alert system takes no action andcontinuous monitoring the AMD 3502.

If it is determined that the device condition does not satisfy a set ofnormal operating parameters, the alert system determines whether thedetected device condition satisfies a set of minimum operatingparameters 3508. If, at block 3508, it is determined that the devicecondition does not satisfy a set of minimum operating parameters, thealert system may send a signal to the therapy delivery module 606 ormedicament delivery interface 1806 (e.g., using medicament dose controlprocedures 1830) to stop delivery of therapy to the subject 3509, and togenerate a critical user alert or critical alert 3511 that isprioritized by indicating that immediate or urgent action is required.In some examples, upon generation of a critical alert the alarm systemof the AMD, may contact a healthcare provider or certified user (e.g.,parent or guardian of the subject) and also send the critical alert toone or more computing devices (e.g., laptop, cell phone, personalcomputer, and the like) of the healthcare provider or certified user.

If, at block 3508, it is determined that the device condition satisfiesa set of minimum operating parameters, the alert system may maintain thedelivery of therapy to the subject 3510 and generate a user alert ornon-critical malfunction alert 3512. In some such examples, the alertsystem may maintain the delivery of the therapy at rate associated withthe detected condition of the AMD (e.g., normal rate or minimummaintenance rate) until an alert modification condition is detected3514.

Upon detection of an alert modification condition 3514, the alert systemmay determine whether the new device condition satisfies a normal set ofparameters 3516. If, at block 3516, it is determined that the new devicecondition satisfies a set of normal operating parameters, the alertsystem may resume the normal operation of the AMD 3518 (e.g., deliverthe therapy at a normal rate). If at block 3516, it is determined thatthe new device condition does not satisfy a set of normal operatingparameters, the alert system may determine whether the new devicecondition satisfies a minimum set of parameters 3520. If, at block 3520,it is determined that the new device condition satisfies a set ofminimum operating parameters. The alert system may maintain or modifythe rate of therapy delivery according to the new device condition 3522and generate a user alert or non-critical malfunction alert 3524according to the new device condition. If, at block 3520, it isdetermined that the new device condition does not satisfy a set ofminimum operating parameters, the alert system may send a signal to thetherapy delivery module to stop delivery of therapy to the subject 3521,and generate a critical user alert 3523 indicating that immediate orurgent action is required. The critical user alert 3523 may beprioritized over other types of alerts and alarms. In some examples,upon generation of a critical alert the alarm system of the AMD, maycontact a healthcare provider or certified user (e.g., parent orguardian of the subject) and also send the critical alert to one or morecomputing devices (e.g., laptop, cell phone, personal computer, and thelike) of the healthcare provider or certified user.

Managing Doses of Glucose Control Agents

Ambulatory medical devices allow subjects the freedom to treatthemselves while being mobile. Self-managed medical treatment comes withinherent risks to the subject.

An automated blood glucose control system may automatically provideinsulin and/or a counter-regulatory agent (e.g., Glucagon) to a subjectto help control the blood glucose level of the subject. Generally, acontrol algorithm is implemented by an automated blood glucose controlsystem (BGCS) to determine when to deliver one or more glucose controlagents and how much agent to provide to the subject. Further, thecontrol algorithm may control both an ongoing or periodic delivery ofinsulin (e.g., a basal dose), and a correction bolus that may beprovided to adjust a subject's blood glucose level to within a desiredrange. The control algorithm may use blood glucose level readingsobtained from a sensor, such as a continuous glucose monitoring (CGM)sensor, that obtained automated blood glucose measurements from thesubject. Moreover, in some cases, the control algorithm may deliver abolus of insulin in response to an indication of a meal to be consumedor being consumed by the subject.

Insulin may be administered subcutaneously into blood of a subject.There is often a delay between when the insulin is provided and when theamount of insulin in the subject's blood plasma reaches maximumconcentration. This amount of time may vary based on the type of insulinand on the physiology of the particular subject. For example, with afast-acting insulin, it may take approximately 65 minutes for a bolus ofinsulin to reach maximum concentration in the blood plasma of thesubject. For some other types of insulin, it may take anywhere from 3-5hours to reach maximum concentration in the blood plasma of the subject.Accordingly, the blood glucose control system may implement a predictivealgorithm that implements a bi-exponential pharmacokinetic (PK) modelthat models the accumulation of insulin doses in the blood plasma of thesubject. The blood glucose control system may modify its predictionsbased on the type of insulin, one or more blood glucose readings, and/orcharacteristics of the subject.

In some cases, a subject may receive a manual bolus of insulin ormedicament. For example, a user (e.g., healthcare provider, parent, orguardian) or subject may inject a dose of insulin into the subject. Asanother example, the user or subject may manually direct the automatedblood glucose control system to provide a bolus of insulin to thesubject.

It is generally undesirable to have too much insulin. An excess ofinsulin can lead to Hypoglycemia. As described above, it may take timefor insulin to reach maximum concentration in the blood plasma of thesubject. Thus, a blood glucose level reading from a sensor may notimmediately, or even after a particular period of time, reflect theamount of insulin within a subject. Thus, a manual bolus of insulin maynot be detected by the automated blood glucose control system. As aresult, if the automated blood glucose control system is operatingduring delivery of a manual bolus, or is configured to operate on thesubject prior to blood glucose level readings reflecting the effect ofthe manual bolus on the subject, the automated blood glucose controlsystem may unnecessarily administer additional insulin to the subjectpotentially leading to hypoglycemia.

The present disclosure relates to an automated blood glucose controlsystem configured to provide automatic delivery of glucose controltherapy to a subject and receive information about manual glucosecontrol therapy provided to the subject. Using the received informationabout the manual glucose therapy, the automated blood glucose controlsystem can adjust the blood glucose control algorithm to account for themanual dosing of insulin (or counter-therapy agents). The manual glucosecontrol therapy may be provided by injection therapy, or it may beprovided by an insulin pump.

In some cases, the automated blood glucose control system may receive anindication of insulin or medicament to administer to a subject in placeof an automatically calculated dose of insulin. For example, theautomated blood glucose control system may receive an indication that asubject is consuming or will consume a meal. The indication may includea type of meal to be consumed (e.g., breakfast, lunch, or dinner) and anestimate of the quantity of food or carbohydrates to be consumed (e.g.,less than usual, a usual amount, more than usual, 30-40 grams ofcarbohydrates, 45-60 grams of carbohydrates, etc.). Based on theindication, or meal announcement, the automated blood glucose controlsystem may calculate an amount of insulin to administer to the subject.The calculation may be based on an insulin to carbohydrate ratioprovided by a clinician and/or determined by the automated blood glucosecontrol system. Moreover, the calculation may be based at least in parton a history of blood glucose level measurements for the subject whenconsuming particular meals.

The calculated amount of insulin for the meal announced by the user maybe presented to the user. The user (e.g., the subject) may modify theamount of insulin to administer. For example, the user may determinethat for the size meal the subject is consuming or planning to consume,more or less insulin should be administered. In such cases, the user maymodify the calculated insulin dosage to match the user's determinationof the amount of insulin to administer. In some cases, the automatedblood glucose control system may modify its control algorithm based onthe user's input. Thus, future meal announcements may result in acalculation of insulin that satisfies the subject's insulin needs and/orpreferences.

For example, automated blood glucose control system can receive a mealannouncement from a user responsive to the user interaction with theuser interface. The meal announcement can correspond to an indication ofa size of a meal consumed or to be consumed by the subject as discussedherein. The automated blood glucose control system can determine a mealbolus of insulin to administer to the subject based at least in part onthe meal announcement. The meal bolus of insulin can correspond to anamount of insulin to administer to the subject to compensate for achange in blood glucose attributable to the meal. The automated bloodglucose control system can output for display an indication of the mealbolus of insulin. The automated blood glucose control system can receivean indication of a requested modification to the meal bolus of insulinfrom the user. The automated blood glucose control system operate acontrol algorithm for automatic generation of an insulin dosing signalconfigured to operate the medicament pump to control blood glucose levelin the subject based at least in part on a glucose level of the subjectand the modification to the meal bolus of insulin.

In some cases, the indication of an amount of a manual bolus may bereceived by a user entering a numerical value (e.g., an amount ofinsulin, a number of carbohydrates, or another calculation) associatedwith administering insulin, which may be considered a specified gestureinteraction required for entry of the manual bolus of medicament. Insome cases, a specified gesture interaction required for entry of themanual bolus of medicament may be a sliding action or other movement ona touchscreen to confirm or initiate desired functions as discussedherein. As described above, the automated blood glucose control systemmay automatically-calculate a meal dose of insulin and present it to auser via a user interface where a user may enter the manual bolusinformation. At the time of making the meal announcement, the user mayhave an option to enter the manual bolus. The meal controller of theblood glucose pump can provide a recommendation against the manual entryif there is a prior history of online operation or a basis for makingthe recommendation.

The information may be received from a user via a user interface. Thisuser interface may be provided by the automated blood glucose controlsystem. Alternatively, or in addition, the user interface may begenerated by another device, such as a laptop or desktop, a smartphone,a smartwatch, or any other computing device that can communicate viawired or wireless communication with the automated blood glucose controlsystem. The information may include one or more of: an indication ofdelivery of a manual bolus (e.g., via injection therapy), an amount ofthe manual bolus, a type of the insulin (or other medicament), a timewhen the manual bolus was delivered, a general location that the manualbolus was administered to the subject (e.g., back, stomach, arm, leg,etc.), a reason for the manual bolus (e.g., a meal, a maintenance dose,a blood glucose level reading, in advance of exercise, etc.), and anyother information that may be useable by the blood glucose controlsystem in controlling the blood glucose level of the subject.

Advantageously, in certain embodiments, providing manual dosinginformation to the automated blood glucose control system can help theblood glucose control system maintain the blood glucose level of thesubject within a desired range when the automated features of the bloodglucose control system are active or operational. For example, if theautomated blood glucose control system determines from a CGM sensorreading that a subject's blood glucose level is high, the automatedblood glucose control system might normally administer a bolus ofinsulin. However, if the automated blood glucose control system receivesan indication that a manual bolus of insulin was administered recently(e.g., within the past thirty minutes), the automated blood glucosecontrol system may reduce or not administer a bolus of insulin, therebypreventing a hypoglycemic event and providing glycemic control. In somesuch cases, the automated blood glucose control system may continuemonitoring the blood glucose level of the subject and may administeradditional insulin at a later time if the blood glucose level readingsdo not reflect an expected blood glucose level based on the reportedmanual bolus of insulin.

In some cases, it may be unnecessary to receive an indication of themanual bolus because, for example, a user may cause the automated bloodglucose control system to provide the manual bolus. In such cases, theautomated blood glucose control system may track the amount of insulindelivered and the timing of the administering of the bolus. To track themanual bolus, the automated blood glucose control system may store theinformation associated with the manual bolus in a therapy log.Accordingly, when the automated blood glucose control system isoperating in an automatic mode, the automated blood glucose controlsystem can access the therapy log to determine whether any manual boluswere administered and, if so, the timing and amount of the manual bolus.

In some cases, the automated blood glucose control system may model thediminishing of insulin, or other medicament, in the blood plasma overtime based on the information associated with the manual bolus. Modelingthe diminishing of medicament over time may be used to estimate a futureeffect of the medicament previously administered. In some cases, themodel may account for previously administered medicament by theautomated blood glucose control system. Further, in some cases, themodel may account for physiological characteristics of the subject, suchas the subject's weight or an input parameter related to the subject'sweight (e.g., body mass value, body mass index value). Moreover, themodel may account for perfusion over time of the medicament bolus from asubcutaneous infusion site into the blood plasma of the subject.Further, the automated blood glucose control system may model anaccumulation of insulin, model time course of activity of insulin, ormodel a finite rate of utilization of insulin.

Based on the model, the automated blood glucose control system mayadjust the automated administering of insulin, or other medicament, whenoperating in an automatic mode to automatically generate an insulindosing signal configured to operate the medicament pump to control bloodglucose level. Further, the automated blood glucose control system mayoperate the administering of medicament (e.g., by controlling amedicament pump) based on a glucose level of the subject and the modeledconcentration of medicament in the subject, which can include a timecourse of activity of the medicament in the subject due to a finite rateof utilization of the medicament as discussed herein.

In some cases, the automated blood glucose control system may confirmthat the manual bolus was delivered to the subject. The confirmation maybe determined based at least in part on whether blood glucose levelreadings by the CGM sensor match or are within a threshold levelanticipated by the automated blood glucose control system based on themanual dosing information. Alternatively, or in addition, the automatedblood glucose control system may request, via a user interface, that auser confirm that the manual bolus was delivered. In cases where themanual bolus in delivered by the automated blood glucose control system,a user may be requested to confirm the administering of the manual bolusby using a particular gesture or sequence of interactions with a userinterface (e.g., a touchscreen) of the automated blood glucose controlsystem or of a device (e.g., laptop or smartphone, etc.) thatcommunicates with the automated blood glucose control system.

As previously described, in some cases, the information relating to themanual bolus may include an amount of insulin and a reason the manualbolus was administered (e.g., for a meal of a particular size). In somesuch cases, the automated blood glucose control system may determine anamount of insulin the automated blood glucose control system wouldadminister in an automatic operating mode based on the manual dosinginformation if the manual bolus had not been supplied. If the automatedblood glucose control system determines it would have supplied adifferent quantity of the medicament, and if the difference exceeds athreshold, the automated blood glucose control system may adjust a bloodglucose control algorithm to account for the difference. For example,the automated blood glucose control system may change the operatingsetpoint or range of insulin the automated blood glucose control systemattempts to maintain in the subject. As another example, the automatedblood glucose control system may supplement the manual bolus withadditional insulin to account for an under-administering of insulin ormay reduce a subsequent dosage of insulin to account for anover-administering of insulin.

As previously indicated, the automated blood glucose control system maymaintain a therapy log of manual insulin therapy. This therapy log maybe maintained based on the use of the automated blood glucose controlsystem to provide a manual bolus or based on information provided by theuser based on manual administering of insulin (e.g., via injection). Themanual boluses may be supplied when the automated blood glucose controlsystem is not operating, is not operating in an automatic mode, or isnot connected to the subject. Once the automated blood glucose controlsystem is connected to the subject and is configured in automatic mode,the automated blood glucose control system may determine therapy, ifany, to provide to the subject based on a combination of the therapy logand the glucose control algorithm implemented by the automated bloodglucose control system.

The automated blood glucose control system may generate a dose controlsignal based on the determined therapy. This dose control signal may besupplied to a medicament pump, which may control delivery of themedicament (e.g., insulin) to the subject.

In some cases, a user may control whether the automated blood glucosecontrol system is operating in a manual mode or an automatic mode byinteracting with a user interface of the automated blood glucose controlsystem or of a device that communicate with the automated blood glucosecontrol system. The user interaction may include any type of userinteraction with a user interface. For example, the user interaction mayinclude interaction why physical buttons or interactions with atouchscreen including gestures or taps on the touchscreen.

Additional embodiments relating to managing meal medicament doses andmanual dosing that can be combined with one or more embodiments of thepresent disclosure are described in U.S. Provisional Application No.62/911,143, which was filed on Oct. 4, 2019 and is titled “SYSTEM ANDMETHOD OF MANAGING MEAL DOSES IN AN AMBULATORY MEDICAL DEVICE,” thedisclosure of which is hereby incorporated by reference in its entiretyherein for all purposes.

A system of one or more computers can be configured to performparticular operations or actions by virtue of having software, firmware,hardware, or a combination of them installed on the system that inoperation causes or cause the system to perform the actions. One or morecomputer programs can be configured to perform particular operations oractions by virtue of including instructions that, when executed by dataprocessing apparatus, cause the apparatus to perform the actions. Onegeneral aspect includes a method including: providing an option to auser to select between receiving medicament using a manual deliverycomponent or an automated delivery system. The method also includesreceiving, by the automated delivery system, subjective informationregarding the activity or action that may alter the blood-glucose level.The method also includes receiving, by the manual delivery component, anamount of the medicament to be infused. The method also includes storinga time and the amount of medicament that is infused into the automateddelivery system that controls blood glucose level. Other embodiments ofthis aspect include corresponding computer systems, apparatus, andcomputer programs recorded on one or more computer storage devices, eachconfigured to perform the actions of the methods.

Implementations may include one or more of the following features. Themethod where the automated delivery system modifies medicament deliverybased on the time and the amount of medicament that was received fromeither the manual delivery component or the automated delivery system.The method where the manual delivery component includes a keypad whichallows the user to type in the dosage amount of the desired medicament.The method where providing the option to select is provided prior to auser performing the activity that may alter the blood-glucose level. Themethod where the activity that may alter the blood-glucose levelincludes of consuming food or exercising. The method where thesubjective information regarding the activity of consuming food includesthe approximate relative size of the food that is to be digested. Themethod where the approximate relative size of the food is compared tothe recommended meal doses for the user, and depending on whether theapproximate relative size is the same, larger, or smaller than therecommended doses, the model predictive control component is able todetermine the actions that is required to regulate the glucose level ofthe blood. The method where the subjective information regarding theactivity of exercising includes the intensity and the duration of theexercise. The method where the intensity and the duration of theexercise is compared to the recommended intensity and duration, anddepending on whether it is the same, larger, or smaller than therecommended intensity and duration, the automated delivery system isable to determine the actions that are required to regulate the glucoselevel of the blood. Implementations of the described techniques mayinclude hardware, a method or process, or computer software on acomputer-accessible medium.

One general aspect includes a system having a medical device configuredto provide an option to a user to select between receiving medicamentusing a manual delivery component or an automated delivery system. Thesystem also includes automated delivery system configured to receivesubjective information regarding the activity that may alter theblood-glucose level. The system also includes a manual deliverycomponent configured to receive an amount of the medicament to beinfused. The system also includes where the medical device storing atime and the amount of medicament that is infused into an automateddelivery system that controls blood glucose levels. Other embodiments ofthis aspect include corresponding computer systems, apparatus, andcomputer programs recorded on one or more computer storage devices, eachconfigured to perform the actions of the methods.

Upon utilizing an ambulatory medical device to request for a therapychange, users may have different preferences. Therefore, it is desirablefor modern technology, especially ambulatory medical devices to beequipped with optionality features. These optionality features mayfulfill the different preferences of the users and subjects. Theoptionality features may allow users to control the therapy changes moreclosely and may allow them to be more engaged with the medicalassistance of the ambulatory medical device.

In order to fulfill the variety of preferences, an ambulatory medicaldevice needs to provide options which allows the user to either manuallyrequest the amount of the desired medicament or choose an automateddelivery system that automatically delivers the right amount of themedicament at the right time without further assistance. For the manualcomponent, the user may personally input the desired amount on a keypadthat is provided by the medical device. The medical device furtherconfirms and delivers the requested medicament. After the medicament isinfused through a manual delivery component, the data is stored into amodel predicative control component which is further used to control andregulate the blood glucose level. However, if the user decides to usethe automated delivery system, the user must provide subjectiveinformation regarding the activity or the action that may alter theblood-glucose level. For example, if the blood-glucose level changingactivity is consuming food, the user must provide the time and thedosage amount of the food that is going to be digested. This informationis tied to the automated delivery system, and the subjective informationis further stored into a model predicative control component.

Embodiments described herein include an ambulatory medical device thathas a keypad which allows a user to type in a dose of insulin orglucagon to be administered to a user. A user may wish to receive asingle dose of insulin prior to consuming food and decide how muchinsulin need to be administered. In other embodiments, the user maychoose to receive a burst of glucagon due to low blood sugar because ofphysical activities. Embodiments may include the options for manualinputs of medicament and automated delivery system of medicament. Invarious implementations, the automated delivery system of medicament isdriven by the blood glucose level or related trends. Embodiments hereinaddress a problem that may arise when the user has just received amanual dose and has switched on the automated delivery system. In suchcases, the automated delivery system may be made aware of all manualmedicament infusion amounts and the timing of such infusions.Accordingly, the manual delivery component may inform the automateddelivery system upon delivering any medicament the type of medicamentdelivered, the amount of medicament and the timing of the medicamentdelivered. By having the above information, the automated deliverysystem may determine the amount of medicament that is the user's bloodstream and adjust the automated delivery of medicament and the timing ofthe automated delivery. Accordingly, embodiments are directed to allowsfor a risk free or minimized transition from the manual deliverycomponent and the automated delivery system.

Differences from other system may include that the manual delivery maybe tied to an automated delivery system, the dose input from the user isthen stored into the MPC algorithm (Model Predictive Control) instead ofthe meal delivery algorithm and is handled by the MPC algorithm. Otherembodiments may include selection being able to have a relativisticalgorithmically tuned value. Other embodiments may include a learningalgorithm that includes a usual size meal or larger size meal or smallsize meal. Embodiments may include correlating the manual inputs toasking the user what the size of the meal was and learning how theinsulin affects the user. Embodiments may include correlating the manualinputs to asking the user what activity the user performed and learninghow the glucagon affects the user for a particular activity.

BGCS with Manual Dose Management

FIG. 36 illustrates a schematic of the therapy change delivery system3600 in an ambulatory medical device 3602 that allows the user thechoice of receiving manual delivery of medicament or automated deliveryof medicament. Moreover, the therapy change delivery system 3600 allowthe user to transition between the manual mode and the automated modewith ease. The therapy change delivery system 3600 includes theambulatory medical device 3602, a signal processing component 3603, auser 3604, a therapy delivery component 3605, a therapy change input3606, input components 3607, activity change component 3608, and atherapy change delivery 3610. When the user intends to receive a therapyfrom an ambulatory medical device 3602, the user 3604 may initiate atherapy change input 3606 to request the manual or automated medicament.

The ambulatory medical device 3602 is any medical device that a user3604 may carry around and use with the approval of a medicalprofessional. There are many different types of ambulatory medicaldevices 3602. In one embodiment, the ambulatory medical device 3602 isan insulin and/or glucagon infusion device for user 3604 that have typeI diabetes. Ambulatory medical devices 3602 allow users 3604 the freedomto receive medical care in any setting at their convenience. However,the drawback of using an ambulatory medical device 3602 could be theuser 3604 making mistakes when the user is away from the medicalprofessionals. One possible issue may be caused when the user 3604switches from a manual delivery mode to an automated delivery mode whenthe automated delivery mode is unable to determine the amount ofmedicament in the user's blood stream. Embodiments are directed to themanual medicament delivery information being provided to the automatedmedicament delivery system so that it can adjust its operations based onthe current and future medicament in the user's blood stream. In somecases, such as the embodiment where the ambulatory medical device 3602is an insulin and/or glucagon infusion device, doing automated deliveryof medicament can be problematic.

The ambulatory medical device 3602 includes a signal processingcomponent 3603, a therapy delivery component 3605, and input components3607. The signal processing component 3603, therapy delivery component3605, and input components 3607 may be physically connected, wirelesslyconnected, connected via a cloud-based computer system, or connected inany other way.

The signal processing component 3603 is a computing system that performsthe computing functions for the ambulatory medical device 3602. Thesignal processing component 3603 includes a processor, memory, andstorage. The signal processing component 3603 may be a single computingsystem or may be made up of several computing systems. The signalprocessing component 3603 may perform the computing functions for asingle ambulatory medical device 3602 or many ambulatory medical devices3602. The signal processing component 3603 receives signals from thetherapy delivery component 3605 and from the input components 3607. Thesignal processing component 3603 also transmits signals to the therapydelivery component 3605 and the input components 3607. Signals of thetherapy change input 3606, the therapy change delivery 3610, and allsteps of the 3608 may be received or transmitted by the signalprocessing component 3603.

The user 3604 is any individual that uses the ambulatory medical device3602. In one embodiment the user 3604 is an individual with diabetesthat requires a periodic infusion of insulin or glucagon to maintainhealthy blood sugar levels. In various embodiments, the ambulatorymedical device 3602 infuses insulin or glucagon into the user 3604. Theuser 3604 may transport the ambulatory medical device 3602. Thus, as theuser 3604 moves around, there is a danger that the user 3604 willinadvertently activate input in the ambulatory medical device 3602 thatinitiates a therapy change input 3606.

The therapy delivery component 3605 provides medicaments to the user3604. Signals received from the signal processing component 3603 areexecuted by the therapy delivery component 3605 to change therapy suchas starting, modifying, or stopping a therapy. The therapy deliverycomponent 3605 may have a computing component for interpreting andexecuting instructions from the signal processing component 3603. Thus,the therapy delivery component 3605 can follow a program that iscontrolled by the signal processing component 3603. In one embodiment,the therapy delivery component 3605 is one or more infusion pumps. Aninfusion pump is capable of delivering fluids at varying rates to a user3604. The infusion pump may deliver any fluid, including medicaments.The infusion pump may be connected to a user 3604 through any means. Inone example, the infusion pump is connected to the body through acannula. In an exemplary embodiment, the therapy delivery component 3605is an insulin infusion pump. Also, in an exemplary embodiment, thetherapy delivery component 3605 is an insulin and glucagon infusionpump. Signals received from the signal processing component 3603 may beinterpreted by an insulin and glucagon pump to start, stop, or changethe rate of insulin and glucagon being delivered into a user 3604.

In an exemplary embodiment, the therapy delivery component 3605 is anelectrical stimulation device. An example of an electrical stimulationdevice is a cardiac pacemaker. A cardiac pacemaker stimulates thecardiac muscle to control heart rhythms. Instructions received from thesignal processing component 3603 may be interpreted by a cardiacpacemaker to start stimulating a cardiac muscle, stop stimulating acardiac muscle, or change the rate of stimulation of a cardiac muscle.Another example of an electrical stimulation device is a deep brainstimulator to treat Parkinson's disease or movement disorders.Instructions received from the signal processing component 3603 may beinterpreted by the deep brain stimulator to start, stop, or modify thestimulation of the brain.

The therapy change input 3606 is an input provided by the user 3604 tochange a therapy that is currently being delivered to the user 3604. Thechange of therapy may be to start a therapy, modify a therapy, or cancela therapy. There are many types of possible therapy changes, and thetypes of therapy changes are dependent on the type of ambulatory medicaldevice 3602. In one embodiment, the ambulatory medical device 3602 is aninsulin or glucagon infusion device. However, there are many possibleembodiments of ambulatory medical devices 3602 for the disclosed subjectmatter. The therapy change input 3606 in an insulin or glucagon infusiondevice may be an instruction that when executed, causes the insulin orglucagon infusion device to start infusing an amount of insulin orglucagon into the user 3604. Alternatively, the therapy change input3606 may be an instruction to modify the rate of insulin or glucagoninfusion into the user 3604. The therapy change input 3606 may also bean instruction to cancel insulin or glucagon infusion into the user 3604from the insulin or glucagon infusion device. In an exemplaryembodiment, the ambulatory medical device 3602 is an electrical implant,that when operated, stimulates a part of the body. An example is anelectrical brain implant for users 3604 with Parkinson's disease or forpain management. The implementation of the therapy change can be tomodify the rate of electrical stimulation to the body.

The therapy change delivery 3610 is the performance, by the ambulatorymedical device 3602, of the therapy change input 3606 that was verifiedby the 3608. The therapy change that is delivered by the therapy changedelivery 3610 corresponds to the therapy change selection made by theuser 3604. In one embodiment, the ambulatory medical device 3602 alertsthe user 3604 that it is performing a therapy change delivery 3610. Inan example of various embodiments, the ambulatory medical device 3602displays the therapy change during the therapy change delivery 3610. Anynumber of details of the therapy change may be displayed during thetherapy change delivery 3610. As shown in FIGS. 23 and 43, a simplemessage of “Delivering” may be displayed during the therapy changedelivery 3610. Alternatively, more exact details, such as “Delivering 2units of insulin” or “Delivering insulin at 2 units per minute” may bedisplayed. In another example, the ambulatory medical device 3602 playsa sound effect during the therapy change delivery 3610. In an exemplaryembodiment that is shown in FIG. 43, the therapy change delivery 3610may be canceled by an input by the user 3604. The input to cancel atherapy change delivery 3610 may be any input such as a wake signalinput or a series of touch inputs such as a gesture.

The input components 3607 allow the user 3604 to interact with andcontrol the ambulatory medical device 3602. The amount of control that auser 3604 has may vary based on the type of ambulatory medical device3602 and the user 3604. For example, an ambulatory medical device 3602that delivers pain medication may allow the user more control than anambulatory medical device 3602 that controls heart rhythms. In anotherexample. a user 3604 that is a young child (less than about 10, 11 or 12years) may be allowed less control over an ambulatory medical device3602 than a user 3604 that is a teen or an adult. The input components3607 include a wake button 3620, a touchscreen display 3622, and analphanumeric pad 3624.

The wake button 3620 is activated by a user 3604 to create a wake signalinput to unlock an ambulatory medical device 3602. The wake button 3620may be any input button. In one embodiment, the wake button 3620 is acapacitive button that detects a change in capacitance. The wake button3620 may have a computing component for interpreting and executinginstructions from the signal processing component 3603. Thus, the wakebutton 3620 can follow a program that is dictated by the signalprocessing component 3603.

The touchscreen display 3622 may display a therapy change user interfacefor the user 3604 and receive user 3604 inputs on the touchscreendisplay 3622 input surface. Inputs on the touchscreen display 3622 maybe registered by any touch technology including, but not limited tocapacitive and resistive sensing. The touchscreen display 3622 may be apart of a mobile computing device, such as a cellular phone, tablet,laptop, computer or the like. The touchscreen display 3622 may have acomputing component for interpreting and executing instructions from thesignal processing component 3603. Thus, the touchscreen display 3622 canfollow instructions that are directed by the signal processing component3603. To receive input, the touchscreen display 3622 may displaybuttons, alphanumeric characters, symbols, graphical images, animations,or videos. The touchscreen display 3622 may display an image to indicatewhen the ambulatory medical device 3602 is locked or inaccessible viathe touchscreen display 3622. The touchscreen display may receive theseries of inputs that make up the first gesture and the second gesture.

The alphanumeric pad 3624 registers numerical inputs, alphabeticalinputs, and symbol inputs. The alphanumeric pad 3624 includes amultitude of keys corresponding to numerical, alphabetical, and symbolinputs. The alphanumeric pad 3624 may have a computing component forinterpreting and executing instructions from the signal processingcomponent 3603. Thus, the alphanumeric pad 3624 can follow instructionsthat are dictated by the signal processing component 3603. Thealphanumeric pad 3624 may be configured to provide haptic feedback fromits keys. The alphanumeric pad or pads 3624 may have any number of keysand any number of characters and may span multiple screens that the user3604 can toggle between in order to find all of their sought-aftercharacters. In one embodiment, the wake button 3620 is incorporated intothe alphanumeric pad 3624. In various embodiments, the wake button 3620may be any one or more keys of the alphanumeric pad 3624. In anexemplary embodiment, the alphanumeric pad 3624 is displayed as part ofthe touchscreen display 3622. Characters from the alphanumeric pad 3624may be used as input for the wake signal input, first gesture, therapychange selection, and second gesture. In an exemplary embodiment, thefirst gesture and/or second gesture are created by enteringpredetermined characters on the alphanumeric pad 3624.

The activity change component 3608 may be part of a specialized softwarethat is executed on an ambulatory medical device or include aspecialized hardware that performs the various functions described here.The activity change component 3608 may receive inputs from the userregarding whether the user is about to conduct activities that willchange the blood glucose of the user. For example, the user may provideinput using the input components 3607 that the user is about to performexercise that may lower their blood sugar or eat a meal that willincrease their blood sugar. Upon receiving the activity change from theinput components 3607, the activity change component 3608 offers theuser the option via the mode controller 3613 to select between theautomated delivery system 3612 or the manual delivery component 3614. Asshown in FIG. 36, the manual delivery system may inform the automateddelivery system 3612 and the model predictive control component 3616regarding any manual medicament deliveries of insulin or glucagon asdiscussed herein, including via therapy logs.

In various embodiments, the user may choose the dosage amount, the drugtype (insulin or glucagon; fast or slow acting) and the time of thedelivery and the manual delivery component 3614 may receive suchinformation and deliver the medicament(s) accordingly. In oneembodiment, the manual delivery component 3614 may inform the automateddelivery system 3612 and the model predictive control component 3616regarding the drug type (insulin or glucagon; fast or slow acting) andthe time of the delivery.

When the user activates the automated delivery system 3612, the datafrom previous manual medicament infusions can be readily available sothat the automated delivery system 3612 may be able to determine howmuch medicament is still in the user's blood stream. The automateddelivery system 3612 may make that determination by tracking the finiterate of utilization of infused insulin by the subject based on the timeand amount of any manual medicament infusions reported to the automateddelivery system 3612, for example, by determining a time course ofactivity of the medicament in the subject.

FIG. 37 is a flow chart of a process 3700 detailing a medicamentselection process, according to an exemplary embodiment. In step 3710,the medical device provides an option to a user to select betweenreceiving medicament using a manual delivery component or an automateddelivery system. By using the mode controller 3613, the user can selectthe method for the therapy change request between manual deliverycomponent and the automated delivery system.

In step 3720, the medical device may receive subjective informationregarding the activity or action that may alter the blood-glucose level.Subjective information may include the size of the meal and/or the typeof physical activity. In step 3730, the manual delivery component mayreceive an amount of the medicament to be infused. The medicament may bea plurality of hormones, including but not limited to, glucagon orinsulin. At step 3740, the medical device may store a time and theamount of medicament that was infused into the automated deliverycomponent that controls the blood glucose level. The systems that aredisclosed in FIG. 36 will be utilized to accomplish each and every stepfrom steps 3710, 3720, 3730 and 3740.

FIG. 38 is another flow diagram of a process 3800 for providing optionsfor meal dosage selection or physical activity of the user on anambulatory device. Embodiments described herein include an ambulatorymedical device that has a keypad which allows a user to type in a doseof insulin or glucagon to be administered to a user. A user may wish toreceive a single dose of insulin prior to consuming food and decide howmuch insulin needs to be administered. In some cases, the user maychoose to receive a burst of glucagon due to low blood sugar because ofphysical activities. Embodiments may include the options for manualinputs of medicament and automated delivery system of medicament. Invarious implementations, the automated delivery system of medicament isdriven by the blood glucose level or related trends. Embodiments hereinaddress a problem that may arise when the user has just received amanual dose and has switched on the automated delivery system. In suchcases, the automated delivery system may be made aware of all manualmedicament infusion amounts and the timing of such infusions, forexample, in a therapy log as discussed herein. Accordingly, the manualdelivery component may inform the automated delivery system upondelivering any medicament the type of medicament delivered, the amountof medicament and the timing of the medicament delivered. By having theabove information, the automated delivery system may determine theamount of medicament that is the user's blood stream and adjust theautomated delivery of medicament and the timing of the automateddelivery. Accordingly, embodiments are directed to allowing for a riskfree or minimized risk transition from the manual delivery component andthe automated delivery system.

At block 3810, the user may inform the activity change component 3608that the user is about to engage in activities that may alter theblood-glucose level of the user. The mode controller 3613 may beactivated at decision block 3820 and ask whether the user wants to usethe manual delivery component 3614 to proceed to block 3830 or theautomated system 3612 to proceed to block 3850. The mode controller 3613may include a display of a manual bolus screen comprising a manual boluscontrol element and a bolus recommendation comprising the indication ofthe amount of the bolus of medicament generated by the control algorithmas discussed herein.

If the user chooses to use the manual delivery component 3614 at block3830 and the user provides an input to infuse medicament (e.g., anindication of an amount of a manual bolus of medicament), the ambulatorydevice 3602 may deliver the medicament to the user. The activity changecomponent 3608 may automatically adjust the insulin dose control signalbased on the amount of the manual bolus of insulin. The activity changecomponent 3608 may generate a glucagon dose control signal based atleast in part on the indication of the amount of the manual bolus ofinsulin. Upon the manual delivery process completion, the manualdelivery component 3614 at block 3830 may inform at least one of themodel predictive control component 3616 at block 3840 and the automateddelivery system 3612 at block 3850 regarding the type of medicament,amount of medicament and the time when the medicament was delivery. Thepredictive control component 3616 at block 3840 and automated deliverysystem 3612 at block 3850 may track these manual infusions of medicamentand determine that based on the rate of decay or the half-life of themedicament the total amount of medicament that remains in the user'sblood stream at a particular time or a period of time, for example, in atherapy log as discussed herein. Accordingly, when the automateddelivery system 3850 is activated by the user, the automated deliverysystem 3850 may change its medicament infusion based on the medicamentthat remains in the user's blood stream after a manual infusion by theuser. The predictive control component 3616 may store the indication ofthe amount of the manual bolus of medicament supplied to the subject andan indication of a time when the manual bolus of medicament was suppliedto the subject. The predictive control component 3616 may model adiminishment of the medicament in the subject over time based at leastin part on the manual bolus of medicament. The predictive controlcomponent 3616 may model an accumulation of the manual bolus of themedicament in blood of the subject following subcutaneous infusion ofthe medicament.

Differences from other systems may include that the manual delivery maybe tied to an automated delivery system, the dose input from the user isthen stored into the MPC algorithm (Model Predictive Control) instead ofthe meal delivery algorithm and is handled by the MPC algorithm. Otherembodiments may include selection being able to have a relativisticalgorithmically tuned value. Other embodiments may include a learningalgorithm that includes a usual size meal or larger size meal or smallsize mean. Embodiments may include correlating the manual inputs toasking the user what the size of the meal was and learning how theinsulin affects the user. Embodiments may include correlating the manualinputs to asking the user what activity the user performed, learning howthe glucagon affects the user for a particular activity, and/or storingthe information in a therapy log to model a diminishment of themedicament in the subject over time based at least in part on the manualbolus of medicament.

FIG. 39 illustrates a plurality of screens 3900 that may be produced bythe ambulatory medical device 100. The plurality of screens 3900demonstrates a process that a user may take in order to enter mealdoses. When the mode controller 3608 is activated, the enter meal dosesscreen 3910 may be displayed. Once the screen 3910 is displayed, awarning text may be displayed for the user to ensure safety. The warningtext states that entering a dose may be unsafe and the device will notadapt its meal doses. This warning text cautions the user of the risksthat may be involved in the process of using the ambulatory medicaldevice 3602. After a user acknowledges the warning sign and chooses toproceed, a password screen 3920 may be displayed. Once the passwordscreen 3920 is displayed, a keypad is provided for the user to enter apredetermined sequence of numbers to ensure that the user is the actualregistered user of the ambulatory medical device 3602. When theambulatory medical device 3602 receives the correct predeterminedpassword from the user, the enter meal doses official screen 3930 andmeal doses official screen 3940 may be displayed. The user may decide toaccess the advanced screen 3960, and upon doing so, the advanced screen3960 will allow the user to double check the CGM Insulin levels andchange the speed of the insulin pump. In screen 3930 and screen 3940,the user is provided the option to have the meal keypad on or off. Ifthe user selects to have the keypad on, then an option may be providedfor the user to choose the max dose limit. If the user decides to choosethe max dose limit, the official max dose limit screen 3950 isdisplayed, where the user may enter up to 10 units of the dose. Theprovided number of units is then stored in the model predictive controlcomponent 116 for further regulation of the blood glucose level.

FIG. 40 illustrates a plurality of screens 4000 that may be produced bythe ambulatory medical device 3602. Upon activating the ambulatorymedical device 3602, the initial menu screen 4010 may be displayed. Inthe menu screen 4010, options regarding functionalities of theambulatory medical device 3602 is provided. The list of functionalitiesmay cover all the aspects of the ambulatory medical device 3602. Theuser may access and control many aspects of the device by choosing thesetting option. The setting option will allow the user to further assessand regulate the adjustable functionalities of the ambulatory medicaldevice 3602. Upon selecting the setting option, the setting screen 4020may be displayed and the user may select the advanced setting option.Upon selecting the advanced option, the advanced setting screen 4030 isdisplayed, and the user is provided the option to double check the CGMinsulin levels and change the speed of the insulin pump. The user mayspeed up the process or slow down the process depending on theregulation stats that are provided by the model predictive controlcomponent 3616. The advanced setting screen or state 4030 may bepasscode protected as discussed herein.

FIG. 41 illustrates a plurality of screens 4100 that may be produced bythe ambulatory medical device 3602. The plurality of screens 4100 is theprocess that a user may take in order to enter meal announcements. Thehome screen 4110 provides information and stats regarding the cartridgeof the ambulatory medical device 3602. The user may select the mealbutton with or without an installation of a new cartridge. If a userselects the meal button without installing a new cartridge, theambulatory device 3602 will display the warning screen 4130, where theuser is warned that the insulin cartridge is empty, and the devicefurther advises the user to change the cartridge. However, if a newcartridge is already installed and the food button is pressed, theambulatory medical device 3602 will display the carbs screen 4120, wherethe user is provided the option to choose a meal dose option, which cancorrespond to an indication of a size of a meal consumed or to beconsumed by the subject. The carbs screen 4120 allows the user toprovide subjective information regarding the food that is to bedigested. This subjective data provided by the user is further stored inthe model predictive control component 3616 for further regulation ofthe blood glucose level.

FIG. 42 illustrates a plurality of screens 4200 that may be produced bythe ambulatory medical device 3602. The plurality of screens 4200demonstrates the process of the user being alerted about the emptycartridge and having the option to replace the cartridge and furtherenter the meal doses. Warning screen 4210 alerts the user that theinsulin cartridge is empty and the fact that it needs to be replaced.Upon replacing the cartridge, screens 4220 and 4230 will be displayed.Screen 4220 is initially displayed, and a user may enter a specifieddose for each meal on a numerical pad, which can correspond to anindication of a size of a meal consumed or to be consumed by thesubject. Upon inserting a numerical specified dose, screen 4230 isdisplayed where a next button is provided for the user to furthercomplete the therapy change. The numerical specified dose is furtherstored in the model predictive control component 3616 for furtherregulation of the blood glucose level. For example, the AMD can proceedto determine a meal bolus of insulin to administer to the subject basedat least in part on the meal announcement as discussed herein. The mealbolus of insulin can correspond to an amount of insulin to administer tothe subject to compensate for a change in blood glucose attributable tothe meal.

FIG. 43 illustrates a plurality of screens 4300 that may be produced bythe ambulatory medical device 3602. Upon selecting the delivery request,a user may cancel the delivery of the medicaments prior to thecompletion of the delivery. The ambulatory medical device 3602 displaysa countdown prior to delivery. The initial countdown screen 4310 isproceeded by the secondary countdown screen 4330. During these countdownscreens, a cancel button is provided for the user to cancel the therapychange. During the initial countdown screen 4310 or the secondarycountdown screen 4330, the user may cancel the delivery at any time. Byswiping the cancel button, the user may officially stop the delivery ofthe therapy change. If the user does not cancel, the therapy change maybe delivered successfully. Furthermore, the time and the amount of thetherapy change delivery is stored in the model predictive controlcomponent 3616 for further regulation of the blood glucose level.However, if the user decides to cancel the delivery, the delivery willbe canceled and the screen 4320 will be provided. Once the deliverycancelation is requested and the screen 4320 is displayed, upon pressingthe ok button, the ambulatory medical device 3602 will display a lockscreen 4340 and take the time to officially cancel the therapy changerequest.

FIG. 45 illustrates an example process 4500 for receiving input, viauser interaction with a user interface, for manual glucose controltherapy provided by a glucose control system. An automated blood glucosecontrol system can be configured to provide automatic delivery ofglucose control therapy to a subject and to also provide manual glucosecontrol therapy when requested by a user. At block 4510, a controlalgorithm generates an indication of an amount of a bolus of medicament.The control algorithm is configured to provide automatic control ofblood glucose level in the subject and can automatically generate bolusamounts for correction doses and for meal doses based on at least one ofan indicated glucose level of the subject, a meal announcement, anindicated meal size, control parameters selected manually orautomatically by the control system, or any combination of the precedingvalues. In block 4520, the bolus of medicament can correspond to a mealbolus of medicament or a correction bolus of medicament, and the amountof the bolus of medicament can be selected by the control algorithmbased at least in part on preceding periods of glycemic control in thesubject.

At block 4530, the glucose control system generates a display of amanual bolus screen that can include a manual bolus control element thatcan facilitate manual entry of an indication of a medicament bolusamount. The indication of the medicament bolus amount can include avolume of medicament, an amount of carbohydrates in a meal, and/or othermanual therapy instructions. The manual bolus screen can include a bolusrecommendation, which can include an indication of the amount of thebolus of medicament generated by the control algorithm. The bolusrecommendation can be for a correction dose or a meal dose, and can bein the form of a volume of medicament and/or, in the case of a mealdose, an estimated amount of carbohydrates consumed in a typical meal ora meal of the size selected by the user. The meal dose can account forthe time of the meal and the typical meal composition as indicated bypreceding periods of glycemic response in prandial and post-prandialperiods.

At block 4540, the glucose control system can receive, via userinteraction with the manual bolus control element, the indication of anamount of a manual bolus of medicament. The indication can include oneor more than one indication entered manually via user interaction withone or more user interface control elements.

At block 4550, the glucose control system can store one or more of thefollowing in a therapy log or another suitable location: at least oneindication of an amount of a manual bolus of medicament, an amount of amanual bolus of medicament actually supplied to the subject, and/or anindication of a time when the manual bolus of medicament was supplied tothe subject.

At block 4560, the glucose control system may use a model to determinethe diminishment of medicament in the subject over time based at leastin part on the manual bolus of medicament. Modeling the diminishment ofmedicament can account for a finite rate of utilization of the manualbolus of medicament and can use one of more models as described hereinand in the Controller Disclosures.

At block 4570, the glucose control system can operate the controlalgorithm for automatic generation of an insulin dosing signalconfigured to operate a medicament pump to control blood glucose levelin the subject based at least in part on a glucose level signal receivedfrom a glucose level sensor operatively connected to the subject and atime course of activity of the medicament in the subject due to a finiterate of utilization of the medicament. The medicament in the subject caninclude the manual bolus of medicament and/or one or more automaticallygenerated boluses of medicament.

FIG. 44 is a block diagram illustrating a computer system 4400 that maybe implemented in the various embodiments in the described subjectmatter. The computer system 4400 includes a processor 4402, main memory4404, storage 4406, a bus 4408, and input 4410. The processor 4402 maybe one or more processors. The processor 4402 executes instructions thatare communicated to the processor through the main memory 4404. The mainmemory 4404 feeds instructions to the processor 4402. The main memory4404 is also connected to the bus 4408. The main memory 4404 maycommunicate with the other components of the computer system through thebus 4408. Instructions for the computer system 4400 are transmitted tothe main memory 4404 through the bus 4408. Those instructions may beexecuted by the processor 4402. Executed instructions may be passed backto the main memory 4404 to be disseminated to other components of thecomputer system 4400. The storage 4406 may hold large amounts of dataand retain that data while the computer system 4400 is unpowered. Thestorage 4406 is connected to the bus 4408 and can communicate data thatthe storage holds to the main memory 4404 through the bus 4408.

The processor 4402 may be any type of general purpose processorincluding, but not limited to a central processing unit (“CPU”), agraphics processing unit (“GPU”), a complex programmable logic device(“CPLD”), a field programmable gate array (“FPGA”), or anapplication-specific integrated circuit (“ASIC”). One embodiment of thecomputer system 4400 in the ambulatory medical device 100 features a CPUas the processor 4402. However, embodiments may be envisioned for thecomputer system of the ambulatory medical device 100 that incorporateother types of processors 4402.

The main memory 4404 can be any type of main memory that can communicateinstructions to the processor 4402 and receive executed instructionsfrom the processor 4402. Types of main memory 4404 include but are notlimited to random access memory (“RAM”) and read only memory (“ROM”). Inone embodiment, the computer system 4400 incorporates RAM as the form ofmain memory 4404 to communicate instructions to the processor 4402 andreceive executed instructions from the processor 4402. Other embodimentsmay be envisioned that incorporate other types of main memory 4404 inthe computer system 4400.

The storage 4406 can be any type of computer storage that can receivedata, store data, and transmit data to the main memory 4404 via the bus4408. Types of storage 4406 that can be used in the computer system 4400include, but are not limited to, magnetic disk memory, optical diskmemory, and flash memory. In one embodiment, flash memory is used as thestorage 4406 in the computer system 4400 of the ambulatory medicaldevice 100. Other embodiments that use other types of storage 4406 forthe computer system 4400 may be envisioned.

The bus 4408 connects the internal components of the computer system4400. The bus 4408 may include a multitude of wires that are connectedto the components of the computers system 4400. The wires of the bus4408 may differ based on the components of the computer system 4400 towhich the bus 4408 connects. In various embodiments, the bus 4408connects the processor 4402 to the main memory 4404. In variousembodiments, the processor 4402 is directly connected to the main memory4404.

The input 4410 of the computer system 4400 includes a touchscreendisplay 4412, an alphanumeric pad 4414, and buttons 4416. Thetouchscreen display 4412 both produces output and accepts input. The bus4408 may be coupled to the touchscreen display 4412 to produce visualoutput. The touchscreen display 4412 may also accept input viacapacitive touch, resistive touch, or other touch technology. The inputsurface of the touchscreen display 4412 can register the position oftouches on the surface. Some types of touchscreen display 4412 canregister multiple touches at once. The alphanumeric pad 4414 includes amultitude of keys with numerical, alphabetical, and symbol characters.Signals from the alphanumeric pad 4414 are communicated by the bus 4408to the main memory 4404. Keys of the alphanumeric pad 4414 may becapacitive or mechanical. In some embodiments, the alphanumeric pad 4414is displayed on the touchscreen display 4412. Buttons 4416, such as thewake button 120, may be capacitive, mechanical, or other types of inputbuttons.

Terminology

It is to be understood that not necessarily all objects or advantagesmay be achieved in accordance with any particular embodiment describedherein. Thus, for example, those skilled in the art will recognize thatcertain embodiments may be configured to operate in a manner thatachieves or optimizes one advantage or group of advantages as taughtherein without necessarily achieving other objects or advantages as maybe taught or suggested herein.

All of the processes described herein may be embodied in, and fullyautomated via, software code modules executed by a computing system thatincludes one or more computers or processors. The code modules may bestored in any type of non-transitory computer-readable medium or othercomputer storage device. Some or all the methods may be embodied inspecialized computer hardware. Further, the computing system mayinclude, be implemented as part of, or communicate with an automatedblood glucose system, an ambulatory medicament system, or an ambulatorymedical device.

Many other variations than those described herein will be apparent fromthis disclosure. For example, depending on the embodiment, certain acts,events, or functions of any of the algorithms described herein can beperformed in a different sequence, can be added, merged, or left outaltogether (for example, not all described acts or events are necessaryfor the practice of the algorithms). Moreover, in certain embodiments,acts or events can be performed concurrently, for example, throughmulti-threaded processing, interrupt processing, or multiple processorsor processor cores or on other parallel architectures, rather thansequentially. In addition, different tasks or processes can be performedby different machines and/or computing systems that can functiontogether.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a processing unit or processor, adigital signal processor (DSP), an application specific integratedcircuit (ASIC), a field programmable gate array (FPGA) or otherprogrammable logic device, discrete gate or transistor logic, discretehardware components, or any combination thereof designed to perform thefunctions described herein. A processor can be a microprocessor, but inthe alternative, the processor can be a controller, microcontroller, orstate machine, combinations of the same, or the like. A processor caninclude electrical circuitry configured to process computer-executableinstructions. In another embodiment, a processor includes an FPGA orother programmable device that performs logic operations withoutprocessing computer-executable instructions. A processor can also beimplemented as a combination of computing devices, for example, acombination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. Although described hereinprimarily with respect to digital technology, a processor may alsoinclude primarily analog components. A computing environment can includeany type of computer system, including, but not limited to, a computersystem based on a microprocessor, a mainframe computer, a digital signalprocessor, a portable computing device, a device controller, or acomputational engine within an appliance, to name a few.

Conditional language such as, among others, “can,” “could,” “might” or“may,” unless specifically stated otherwise, are otherwise understoodwithin the context as used in general to convey that certain embodimentsinclude, while other embodiments do not include, certain features,elements and/or steps. Thus, such conditional language is not generallyintended to imply that features, elements and/or steps are in any wayrequired for one or more embodiments or that one or more embodimentsnecessarily include logic for deciding, with or without user input orprompting, whether these features, elements and/or steps are included orare to be performed in any particular embodiment.

Disjunctive language such as the phrase “at least one of X, Y, or Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to present that an item, term, etc., may beeither X, Y, or Z, or any combination thereof (for example, X, Y, and/orZ). Thus, such disjunctive language is not generally intended to, andshould not, imply that certain embodiments require at least one of X, atleast one of Y, or at least one of Z to each be present.

Any process descriptions, elements or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or elements in the process. Alternateimplementations are included within the scope of the embodimentsdescribed herein in which elements or functions may be deleted, executedout of order from that shown, or discussed, including substantiallyconcurrently or in reverse order, depending on the functionalityinvolved as would be understood by those skilled in the art.

Unless otherwise explicitly stated, articles such as “a” or “an” shouldgenerally be interpreted to include one or more described items.Accordingly, phrases such as “a device configured to” are intended toinclude one or more recited devices. Such one or more recited devicescan also be collectively configured to carry out the stated recitations.For example, “a processor configured to carry out recitations A, B andC” can include a first processor configured to carry out recitation Aworking in conjunction with a second processor configured to carry outrecitations B and C.

Many variations and modifications may be made to the above-describedembodiments, the elements of which are to be understood as being amongother acceptable examples. All such modifications and variations areintended to be included herein within the scope of this disclosure.

What is claimed is:
 1. A computer-implemented method of updating anapplication executing on an ambulatory medical device withoutinterrupting therapy provided by the ambulatory medical device to asubject, the computer-implemented method comprising: by a hardwareprocessor of an ambulatory medical device, receiving an indication thatan application update comprising an update to an application executingon the ambulatory medical device is available; establishing acommunication connection to a host computing system configured to hostthe application update; downloading the application update from the hostcomputing system; confirming that a downloaded copy of the applicationupdate is complete; confirming that the downloaded copy of theapplication update is not corrupted; determining an execution time of aninstallation process that installs the downloaded copy of theapplication update at the ambulatory medical device, wherein theexecution time comprises an amount of time to perform the installationprocess; receiving a trigger to install the downloaded copy of theapplication update; responsive to the trigger, determining a nexttherapy delivery time associated with delivering therapy by theambulatory medical device to a subject; determining, based at least inpart on the execution time, that the installation process will completeprior to the next therapy delivery time; and initiating the installationprocess of the downloaded copy of the application update withoutinterrupting therapy provided by the ambulatory medical device to thesubject.
 2. The computer-implemented method of claim 1, wherein thecommunication connection is established over a cellular network thatenables the ambulatory medical device to communicate directly with thehost computing system over the cellular network.
 3. Thecomputer-implemented method of claim 1, wherein the communicationconnection comprises a narrow band long-term evolution (NB-LTE)connection, an NB Internet-of-Things (NB-IoT) connection, a cellular IoTconnection, a 4G LTE connection, or a 5G connection.
 4. Thecomputer-implemented method of claim 1, wherein the communicationconnection comprises a direct end-to-end wireless connection over a widearea network (WAN).
 5. The computer-implemented method of claim 1,wherein the application update comprises a new version of theapplication, a patch to the application, or a replacement applicationfor the application.
 6. The computer-implemented method of claim 1,wherein the indication that the application update is available isreceived in response to an application update availability checktriggered by the ambulatory medical device.
 7. The computer-implementedmethod of claim 1, wherein the indication that the application update isavailable is transmitted to the ambulatory medical device without theambulatory medical device performing an action to trigger transmissionof the indication to the ambulatory medical device.
 8. Thecomputer-implemented method of claim 1, wherein the next therapydelivery time is determined based at least in part on a therapy deliveryschedule stored at the ambulatory medical device.
 9. Thecomputer-implemented method of claim 1, wherein the next therapydelivery time is determined based at least in part on a determinedcondition of the subject.
 10. The computer-implemented method of claim1, wherein determining the next therapy delivery time comprisesestimating the next therapy delivery time based at least in part on ameasurement of a physiological parameter of the subject.
 11. Thecomputer-implemented method of claim 1, wherein determining theexecution time comprises estimating the amount of time to perform theinstallation process.
 12. The computer-implemented method of claim 1,wherein the trigger comprises a determination that the downloaded copyof the application update is complete, a determination that thedownloaded copy of the application update is not corrupted, aninstallation command, or a detection of a fault during execution of theapplication.
 13. The computer-implemented method of claim 1, whereindetermining that the installation process will complete prior to thenext therapy delivery time comprises determining that the installationprocess will complete at least a threshold amount of time prior to thenext therapy delivery time.
 14. The computer-implemented method of claim1, wherein determining that the downloaded copy of the applicationupdate is complete is based at least in part on one or more of a size ofthe downloaded copy of the application update, a tag, a checksum, or ahash.
 15. The computer-implemented method of claim 1, whereindetermining that the downloaded copy of the application update is notcorrupted is based at least in on a checksum or a hash.
 16. Thecomputer-implemented method of claim 1, wherein the applicationcomprises one of a first application version comprising a first featureset or a second application version comprising a second feature set, andwherein downloading the application update comprises downloading one ofa first application update corresponding to the first applicationversion or a second application update corresponding to the secondapplication version.
 17. The computer-implemented method of claim 16,wherein the indication that the application update is availablecomprises an indicator of whether the application update corresponds tothe first application version or the second application version.
 18. Thecomputer-implemented method of claim 16, wherein the first feature setcomprises a subset of the second feature set or a partially overlappingset of features with the second feature set.
 19. Thecomputer-implemented method of claim 16, further comprising determiningan application version of the application, wherein downloading theapplication update comprises downloading one of the first applicationupdate or the second application update based at least in part on theapplication version of the application.
 20. The computer-implementedmethod of claim 1, wherein the host computing system comprises a servercomputing device, a cloud computing device, a local computing device, acomputing device of the subject, a computing device of a healthcareprovider, a computing device of a manufacturer of the ambulatory medicaldevice, a smartphone, or an application server.
 21. Thecomputer-implemented method of claim 1, wherein the ambulatory medicaldevice comprises a mono-hormonal medicament pump or a bi-hormonalmedicament pump.
 22. The computer-implemented method of claim 1, whereininitiating the installation process of the downloaded copy of theapplication update without interrupting therapy comprises initiating theinstallation process without interrupting or preventing a delivery ofmedicament to the subject during the next therapy delivery time.
 23. Acomputer-implemented method of updating an application executing on anambulatory medical device without interrupting therapy provided by theambulatory medical device to a subject, the computer-implemented methodcomprising: by a hardware processor of an ambulatory medical device,receiving an indication that an application update comprising an updateto an application executing on the ambulatory medical device isavailable; establishing a direct end-to-end data connection to a hostcomputing system configured to host the application update, wherein thedirect end-to-end data connection is established via a wireless widearea network; downloading the application update from the host computingsystem over the direct end-to-end data connection; confirming that adownloaded copy of the application update is complete; confirming thatthe downloaded copy of the application update is not corrupted;receiving a trigger to install the downloaded copy of the applicationupdate; determining whether the installation process of the downloadedcopy of the application update will complete prior to a next therapytime associated with administering therapy to the subject; responsive,at least in part, to the trigger and a determination that theinstallation process will complete prior to the next therapy time,initiating an installation process of the downloaded copy of theapplication update without interrupting therapy provided by theambulatory medical device to the subject; and responsive, at least inpart, to the trigger and a determination that the installation processwill not complete prior to the next therapy time, causing an alert to beoutput for display to a user.
 24. The computer-implemented method ofclaim 23, wherein the direct end-to-end data connection comprises anarrow band long-term evolution (NB-LTE) connection, an NBInternet-of-Things (NB-IoT) connection, a cellular IoT connection, a 4GLTE connection, or a 5G connection.
 25. The computer-implemented methodof claim 23, wherein the application comprises one of a firstapplication version comprising a first feature set or a secondapplication version comprising a second feature set, and whereindownloading the application update comprises downloading one of a firstapplication update corresponding to the first application version or asecond application update corresponding to the second applicationversion.
 26. A computer-implemented method of updating an applicationexecuting on an ambulatory medical device without interrupting therapyprovided by the ambulatory medical device to a subject, thecomputer-implemented method comprising: by a hardware processor of anambulatory medical device, receiving an indication that an applicationupdate comprising an update to an application executing on theambulatory medical device is available; downloading the applicationupdate from a host computing system; confirming that a downloaded copyof the application update is complete; confirming that the downloadedcopy of the application update is not corrupted; receiving a trigger toinstall the downloaded copy of the application update; determiningwhether the installation process of the downloaded copy of theapplication update will complete prior to a next therapy time associatedwith administering therapy to the subject; responsive, at least in part,to the trigger and a determination that the installation process willcomplete prior to the next therapy time, initiating an installationprocess of the downloaded copy of the application update withoutinterrupting therapy provided by the ambulatory medical device to thesubject; and responsive, at least in part, to the trigger and adetermination that the installation process will not complete prior tothe next therapy time, causing an alert to be output for display to auser.
 27. An ambulatory medical device configured to provide therapy toa subject and including an application capable of being updated withoutinterrupting the therapy, the ambulatory medical device comprising: amemory configured to store specific computer-executable instructions andan application that, at least in part, controls the therapy provided tothe subject; and a hardware processor in communication with the memoryand configured to execute the specific computer-executable instructionsto at least: receive an indication that an application update comprisingan update to the application executing on the ambulatory medical deviceis available; download the application update from a host computingsystem; confirm that a downloaded copy of the application update iscomplete; confirm that the downloaded copy of the application update isnot corrupted; receive a trigger to install the downloaded copy of theapplication update; determine whether the installation process of thedownloaded copy of the application update will complete prior to a nexttherapy time associated with administering therapy to the subject;responsive, at least in part, to the trigger and a determination thatthe installation process will complete prior to the next therapy time,initiate an installation process of the downloaded copy of theapplication update without interrupting the therapy provided to thesubject; and responsive, at least in part, to a determination that theinstallation process will not complete prior to the next therapy time,cause an alert to be output for display to a user.
 28. The ambulatorymedical device of claim 27, further comprising a wireless transceiverthat enables the ambulatory medical device to establish a networkconnection with the host computing system over a wide area network(WAN).
 29. The ambulatory medical device of claim 27, further comprisinga medicament delivery interface configured to operatively connect to amedicament pump configured to infuse medicament into the subject, themedicament pump comprising a mono-hormonal medicament pump or abi-hormonal medicament pump.
 30. The ambulatory medical device of claim27, wherein the hardware processor is further configured to execute thespecific computer-executable instructions to at least determine orestimate the next therapy delivery time based at least in part on atherapy delivery schedule stored at the ambulatory medical device; adetermined condition of the subject; or a measurement of a physiologicalparameter of the subject.